我需要定义规则(使用mod_rewrite
我认为)映射任何端口portnumber.domain.com
。 如何在Apache2中做到这一点? 现在我有一个像下面的每个端口号的configuration。
# 9003.domain.com <VirtualHost *:80> ServerName 9003.domain.com ProxyPreserveHost On ProxyPass / http://127.0.0.1:9003/ ProxyPassReverse / http://127.0.0.1:9003/ </VirtualHost> # 9004.domain.com <VirtualHost *:80> ServerName 9004.domain.com ProxyPreserveHost On ProxyPass / http://127.0.0.1:9004/ ProxyPassReverse / http://127.0.0.1:9004/ </VirtualHost> # and so on....
你应该可以用ProxyPassMatch做些事情,也许类似
ProxyPassMatch ^([0-9{2,5}]) http://127.0.0.1:$1
我对@Krist回答做了一些更正,现在就开始工作。 403 error
来自RewriteEngine On
缺席。
<VirtualHost *:80> RewriteEngine On ServerAlias *.domain.com RewriteCond %{HTTP_HOST} (\d+).domain.com RewriteRule ^/(.*)$ http://localhost:%1/$1 [P] </VirtualHost>
重写规则确实会这样做。
<VirtualHost *:80> Servername www.domain.com ServerAlias *.domain.com RewriteCond %{HTTP_HOST} (\d+).domain.com RewriteRule (.*) http://localhost:%1/$1 [P] </VirtualHost>