1. ホーム
  2. apache

[解決済み] <IfModule mod_rewrite.c> で毎回 RewriteEngine On?

2022-03-07 10:06:53

質問

私はそれがIfModule mod_rewrite.c に埋め込まれているとき、私は私のhtaccess内で一度だけRewriteEngine Onを使用することができますか、私はそれを毎回使用しなければならないのだろうかと疑問に思っています。 というのも が埋め込まれているのでしょうか?

以下の例をご覧ください。ありがとうございます

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} /?author   [NC]
RewriteRule .* - [F]
</ifModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} g=  [NC]
RewriteRule ^(.*)$ - [F,L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

解決方法は?

すべての書き換えコードに1つのチェックを入れることができるはずです。

あなたのコードから推測するに、mod_rewrite が有効でない場合、あなたのサイトは正しく機能しないか、まったく機能しないのではないでしょうか。そのような場合、私は mod_rewrite のチェックを完全に省略し、それが有効でない場合はウェブサーバーが失敗するようにします。

もし、あなたのコードが mod_rewrite を有効にしていないウェブサーバーにインストールされている状況に陥った場合、デバッグと正確な問題の特定がより簡単になるでしょう。