我在两个环境中运行一个网站:生产和开发。
每个服务器都有一个vhosts.conf
文件,用于设置环境变量。其中一个变量是要使用的正确子域。
vhosts.conf (开发服务器)
RewriteRule .* - [E=DEV_OR_WWW:dev]
vhosts.conf (生产服务器)
RewriteRule .* - [E=DEV_OR_WWW:www]
我还有一个.htaccess
文件,在两台服务器上都是相同的。我正在尝试将旧域名重写为新域名,同时保留子域名,如下所示:
的.htaccess
RewriteCond "%{HTTP_HOST}" "%{ENV:DEV_OR_WWW}\.olddomain\.com" [NC]
RewriteRule "^/(.*)" "http://%{ENV:DEV_OR_WWW}.newdomain.com/$1" [L,R=301]
但上面的RewriteCond不起作用。 %{ENV:DEV_OR_WWW}
与www
或dev
不匹配,并且未应用该规则。如何使用变量来匹配HTTP_HOST?
如果您需要更多详细信息,或者我的问题不清楚,请询问。
答案 0 :(得分:0)
您可以使用以下内容:
RewriteCond %{ENV:DEV_OR_WWW} ^(.+)$
RewriteCond %1.olddomain.com ^(www|dev)\.olddomain\.com$ [NC]
RewriteRule /(.*) http://%1.newdomain/$1 [L,R=301]