apache 将 whatever.domain1.com 重定向到 whatever.domain2.com

apache 将 whatever.domain1.com 重定向到 whatever.domain2.com

我正在尝试从 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]

相关内容