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 に答える