我想在apache2中从子域代理到这样的其他端口
http://test1.example.com - > http://test1.example.com:6543
无论如何编写配置文件并不特定于此子域但是所有子域
无论如何,例如http://.*.example.com - > HTTP://.*.example.com:6543
和http://.*.example.com/first/second - > HTTP://.*.example.com:6543 /第一/第二
这是我的配置
<VirtualHost *:80> ServerName example.com ProxyPassMatch ^([^.]+)\.example\.com(.*) http://$1.example.com:6543/$2 ProxyPassReverse / http://example.com </VirtualHost>
答案 0 :(得分:2)
您需要mod_rewrite才能做到这一点。它可以使用[P]
进行代理。使用如下(删除VirtualHost标签以满足语法高亮):
ServerName example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$
RewriteRule ^(.*) http://%1.example.com:6543/$1 [P]
%1
是子域名,在条件匹配时,$1
是路径,与规则匹配。
您也可以在没有RewriteCond
的情况下使用
RewriteRule ^(.*) http://%{HTTP_HOST}:6543/$1 [P]
我使用上面的额外步骤使其更具信息性,例如如果你想要use the subdomain in the path。