0

我正在尝试提出一个重写规则,该规则将在我支持的所有环境(qa、stage、dev 等)的 conf 文件中工作,因此一个通用的重写条件和规则可以“统治”它们。

例子:

  • subdomain.environment.site.com 应该重定向到 environment.site.com
  • 除了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 不会工作,但我有一个很好的时间试图找到一个合适的正则表达式来使其在所有环境中工作。

4

1 回答 1

0

更多的研究,手敲和啤酒让我找到了解决方案。

它可能不漂亮,但它有效。回答所以如果有人试图这样做,他们在这里有某种开始。

    RewriteCond %{HTTP_HOST}   ^(sub)(\.)((?:[a-z][a-z]+))(\.)(site)(\.)(com) [NC]
    RewriteCond %{REQUEST_URI} !/image
    RewriteCond %{REQUEST_URI} !/blah
    RewriteCond %{REQUEST_URI} !/foobar
    RewriteCond %{REQUEST_URI} !/barfoo
    RewriteRule ^/(.*)         http://%3.%5.%7/$1 [L,R=302]
于 2013-02-06T17:23:10.520 回答