Mod rewrite 使用HTTP_主机和其他端口重写规则

Mod rewrite 使用HTTP_主机和其他端口重写规则,mod-rewrite,Mod Rewrite,我需要在重写规则中使用HTTP_主机头,但需要更改端口 我不能使用服务器名称,因为它与主机头不同(这是我需要的) 有没有办法修剪mod_rewrite的HTTP_主机变量的:port?是的,您可以修剪主机头的端口。只需匹配%{HTTP_HOST}并使用%1反向引用即可。例如: RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$ RewriteRule ^ http://%1:12345/ [R,L] 请记住,%1反向引用只能用于RewriteCond的第

我需要在重写规则中使用HTTP_主机头,但需要更改端口 我不能使用服务器名称,因为它与主机头不同(这是我需要的)


有没有办法修剪mod_rewrite的HTTP_主机变量的:port?是的,您可以修剪主机头的端口。只需匹配
%{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]
没关系


不正常

您的意思是在其他端口上运行Apache吗?%%{SERVER\u port}包含服务器的端口。您可以编辑您的问题以更具描述性吗?它需要使用http_主机重定向到适当的外部服务器。此虚拟站点不在端口80上
RewriteCond %{HTTP_HOST} ^([^:]+)(:[0-9]+)?$
RewriteCond %{REQUEST_URI} ^%1