私はmod_rewriteを使用して、CMSで処理するためのクエリをPHPに送信しています。私の問題:クエリがディレクトリの名前である場合、PHPに送信されるクエリがURLに追加されます。
コードは次のとおりです。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /process.php\?query=$1 [QSA,NC,L]
したがって、ユーザーが入力した場合
http://example.com/lolcats
mod_rewriteはサイレントににリダイレクトします
http://example.com/process.php?query=lolcats
これは素晴らしいです。ただし、lolcats
がディレクトリの場合、mod_rewriteは(サイレントではなく)にリダイレクトします
http://example.com/lolcats/?query=lolcats
元のリクエストの最後にクエリを追加します。Apacheは引き続きPHP出力を提供しますが、ユーザーのアドレスバーのURLを変更します。
そのため、クエリがディレクトリの名前であっても、クエリがリクエストに追加されないようにする必要があります。