regex 从子域中导入apache proxypass

sz81bmfz  于 2023-05-23  发布在  Apache
关注(0)|答案(1)|浏览(139)

我想像这样在apache 2中从子域代理传递到其他端口
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/first/second
这是我的配置

<VirtualHost *:80>
ServerName example.com
ProxyPassMatch ^([^.]+)\.example\.com(.*) http://$1.example.com:6543/$2
ProxyPassReverse /  http://example.com
</VirtualHost>
wqlqzqxt

wqlqzqxt1#

你需要mod_rewrite。它可以使用[P]进行代理。使用方法如下:

<VirtualHost *:80>
ServerName example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$
RewriteRule ^(.*) http://%1.example.com:6543/$1 [P]
</VirtualHost>

%1是子域,在条件中匹配,$1是路径,通过规则匹配。
您也可以在没有RewriteCond的情况下执行此操作,只需使用

<VirtualHost *:80>
RewriteRule ^(.*) http://%{HTTP_HOST}:6543/$1 [P]
</VirtualHost>

我使用了上面的额外步骤,使其更具信息性。如果你想use the subdomain in the path

相关问题