我正在尝试从 whatever.domain1.com 重定向到 whatever.domain2.com,但它必须适用于任何“whatever”值。我尝试了以下方法
<VirtualHost <PUBLIC_IP_ADDR>:80>
ServerName domain1.com
ServerAlias *.domain1.com
RewriteEngine On
SetEnvIf Host "(.*).domain1.com" VHOST=$1
# http replaced with xxxx as otherwise im not allowed to post
RewriteRule .* xxxx://%{VHOST}.domain2.com [R,L]
</VirtualHost>
但是,这不起作用,即 VHOST 变量始终为空。还有其他方法可以操纵 HTTP Host: 标头和/或在重定向中仅使用其中的一部分吗?
答案1
可以使用 RewriteCond 正则表达式匹配中的反向引用
ServerName domain1.com
ServerAlias *.domain1.com
RewriteEngine On
RewriteCond "%{HTTP_HOST}" "^(.*).domain1.com$"
RewriteRule .* xxxx://%1.domain2.com%{REQUEST_URI}?%{QUERY_STRING} [R,L]