【发布时间】:2013-02-06 00:17:42
【问题描述】:
我正在尝试提出一个重写规则,该规则将适用于我支持的所有环境(qa、stage、dev 等)的 conf 文件,因此一个通用的重写条件和规则可以“统治”它们。
例子:
- subdomain.environment.site.com 应该重定向到 environment.site.com
- except subdomain.site.com 应该重定向到 www.site.com。
- 当某些请求 URI 中包含内容时,它也不应该转发。
这是我所到之处:
RewriteCond %{HTTP_HOST} subdomain.$ENV.site.com [NC]
RewriteCond %{REQUEST_URI} !/images
RewriteCond %{REQUEST_URI} !/blah
RewriteCond %{REQUEST_URI} !/blah-foo
RewriteCond %{REQUEST_URI} !/foo-bar
RewriteRule ^/(.*) http://$ENV.site.com/$1 [L,R=302]
很明显 $ENV 不会工作,但我有一个很好的时间试图找到一个合适的正则表达式来使它在所有环境中工作。
【问题讨论】:
-
都可以用一个替换:
RewriteCond %{REQUEST_URI} !/(images|blah|foo) [NC]
标签: regex apache mod-rewrite