apache2强制代理子网域上的特定url

我有一个网站,使用mod_rewritedynamic虚拟子域,如下定义:

<VirtualHost *:80> ServerName example.com ServerAlias *.example.com DocumentRoot /var/www/example.com/www RewriteEngine on RewriteCond %{HTTP_HOST} ^[^.]+\.examle.com$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^([^.]+)\.example.com(.*) /var/www/example.com/$1$2 </VirtualHost> 

问题是,我想要一个特定的url,说subdomain.example.com/CONTROL/指向www.example.com/使用代理(而不是URLredirect)。

我曾尝试添加:

 RewriteRule ^([^.]+)\.example.com/CONTROL(.*) /var/www/example.com/www$2 [P] 

但是这没有用。 有任何想法吗?

[P]的RewriteRule文档部分:

您必须确保replacestring是有效的URI(通常以http://主机名开头),可由Apache代理模块处理。

尝试:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^subdomain.examle.com$ # [L] means stop processing after this rule RewriteRule ^/CONTROL/(.*) http://www.example.com/$1 [P,L] RewriteCond %{HTTP_HOST} ^[^.]+\.examle.com$ RewriteRule ^(.+) %{HTTP_HOST}$1 RewriteRule ^([^.]+)\.example.com(.*) /var/www/example.com/$1$2 

确保你已经加载了代理模块。 如果您在启用详细logging时遇到问题,

 RewriteLog /path/to/rewrite.log RewriteLogLevel 9 

你需要为HTTP_HOST有一个RewriteCond

RewriteRule仅适用于URLpath !

尝试这个:

 RewriteCond %{HTTP_HOST} ^subdomain.examle.com$ RewriteRule subdomain.example.com/CONTROL/(.*) http://www.example.com/$1 [P]