そのため、最近mod_rewriteに関連する問題を扱っていますが、そのようなことをしようとしている人はいないようです。人々が持っているすべての質問は、他のディレクトリと同じようにディレクトリを含めたいときに、ディレクトリを書き換えから除外しようとすることです。
たとえば、.htaccessファイルを含むルートディレクトリを想定すると、www.example.com/root/
などの作成されたディレクトリを入力すると、ブラウザのアドレスバーにあるものを変更せずwww.example.com/root/asdfasdf
にリダイレクトするように.htaccessファイルが設定されますwww.example.com/root/index.php?url=asdfasdf
ただし、などの実際のディレクトリで同じことを行おうとするとwww.example.com/root/admin
、アドレスバーのURLが変更されるだけでなく、に変更されwww.example.com/root/admin/?url=admin
ます。
誰かが私に何が起こっているのか説明できますか?私はあらゆる種類の異なる正規表現とフラグを試しましたが、何かをリダイレクトするものでも同じ問題が発生します。www.example.com/root/admin
クエリ文字列がであることが非表示になっているときに、ルートフォルダに移動してリダイレクトすることはできますか?url=admin
。
[更新:追加情報2012年11月30日]
私が言ったように、リダイレクトが完全に失敗して500エラーが発生するだけではないと仮定すると、複数の異なるコード行が表示され、まったく同じリダイレクトの問題が発生することを試しました。ただし、これが私の最新の反復の1つであり、これにより、ディレクトリを無視しないという問題が発生しました。
RewriteEngine On
RewriteBase /root/
RewriteCond %{REQUEST_FILENAME} !^(.\*\\.("png"|"jpg"|"gif") [NC]
RewriteRule (.\*?) index.php?url=$1 [QSA]
書き換え条件は、画像が要求されている場合にエンジンが書き換えられないようにすることです(cssおよびimgタグの場合)。その行を削除しようとしましたが、違いがなかったため、以前は言及しませんでした。
ただし、私はmod_rewriteのマスターではありません。そのため、私が書いたものにエラーが表示された場合は、遠慮なくお知らせください。