我需要在RewriteRule中使用HTTP_HOST标头,但更改端口 我不能使用SERVER_NAME,因为它与主机标题不同(这是我需要的)
有没有办法修改mod_rewrite的HTTP_HOST变量的:port?
答案 0 :(得分:10)
是的,您可以修剪主机标头的端口。只需与%{HTTP_HOST}
匹配,然后使用%1
反向引用。例如:
RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$
RewriteRule ^ http://%1:12345/ [R,L]
请注意,%1
反向引用只能用于RewriteCond
的第一个参数,而不能用于匹配:
RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$
RewriteCond %1 ^the.hostname.com$ [NC]
没问题
RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$
RewriteCond %{REQUEST_URI} ^%1
不行