我需要在RewriteRule中使用HTTP_HOST头,但是更改我不能使用SERVER_NAME的端口,因为它将与主机头不同(这是我需要的)
有没有办法修改mod_rewrite的HTTP_HOST变量的:port?
Jon*_*Lin 11
是的,您可以修剪主机标头的端口.只需匹配%{HTTP_HOST}并使用%1反向引用.例如:
RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$
RewriteRule ^ http://%1:12345/ [R,L]
Run Code Online (Sandbox Code Playgroud)
请记住,%1反向引用只能用于a的第一个参数RewriteCond,而不能用于匹配:
RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$
RewriteCond %1 ^the.hostname.com$ [NC]
Run Code Online (Sandbox Code Playgroud)
没关系
RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$
RewriteCond %{REQUEST_URI} ^%1
Run Code Online (Sandbox Code Playgroud)
不行