ルールがあります:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+) dir/index.php?$1 [L]
RewriteRule dir/index\.php.* - [F]
最後のルールが処理され、すべてのリクエストに対して Forbidden が返されるのはなぜですか?
ファイルまたはディレクトリが見つからない場合、次のルールが処理されないようにする必要があります。
次の例も私にとってはうまくいきません:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? - [S=1]
RewriteRule dir/index\.php.* - [F]
RewriteRule (.+) dir/index.php?$1
すべてのリクエストに対して Forbidden を返します。