htaccess - これは可能ですか? (ネストされた IfModules)

htaccess - これは可能ですか? (ネストされた IfModules)

モジュールのテストに合格した場合に URL にリダイレクトしようとしています。

こんな感じです(私の場合はうまくいかないようです)。

おそらくこれは不可能でしょう。誰かいますか?

<IfModule mod_rewrite.c>
    <ifModule mod_gzip.c>
        RewriteEngine On
        RewriteRule ^/mod_gzip/?$ mod_gzip-is-enabled.php
    </IfModule>
</IfModule>

答え1

ネストされた<IfModule>コンテナは問題ではありません (はい、これは可能です)。 (ただし、外側の<IfModule mod_rewrite.c>コンテナは必要ですか?)

あなたの問題はRewriteRule パターン ^/mod_gzip/?$:

RewriteRule ^/mod_gzip/?$ mod_gzip-is-enabled.php

.htaccessこれは、ディレクトリごとのコンテキストでは一致しません。RewriteRule パターン次のように削除する必要があります。

RewriteRule ^mod_gzip/?$ mod_gzip-is-enabled.php [L]

/mod_gzip/形式(または)の要求された URL と一致させるため/mod_gzip

ディレクトリごとの.htaccessファイルでは、RewriteRule パターン対戦相手は少ないディレクトリプレフィックス、これはスラッシュで終わります。したがって、一致する URL パスはスラッシュで始まることはありません。(これは、ディレクティブがサーバーまたは仮想ホストのコンテキストで使用される場合とは異なります。)

また、L他のディレクティブがある場合に備えて、フラグを含める必要があります。

関連情報