【发布时间】:2016-11-10 13:26:40
【问题描述】:
我在 2 个环境中运行网站:生产和开发。
每个服务器都有一个vhosts.conf 文件,用于设置环境变量。这些变量之一是要使用的正确子域。
vhosts.conf(开发服务器)
RewriteRule .* - [E=DEV_OR_WWW:dev]
vhosts.conf(生产服务器)
RewriteRule .* - [E=DEV_OR_WWW:www]
我还有一个.htaccess 文件,它在两台服务器上都是相同的。我正在尝试将旧域 url 重写为新域,同时保留子域,如下所示:
.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?
如果您需要更多详细信息,或者如果我的问题不清楚,请直接询问。
【问题讨论】:
标签: .htaccess mod-rewrite url-rewriting