この問題はしばらくの間私を悩ませてきました。
私は小さなサイトエンジンを作成し、mod_rewriteを使用して、どのページを処理するかをエンジンに指示しています。SEOフレンドリーリンクはボーナスです:)。
これが今日の仕組みです。
住所http://www.example.com/site/pageはhttp://www.example.com/engine.php?address=page になります
しかし、私が欲しいのは、アドレスhttp://www.example.com/page がhttp://www.example.com/engine.php?address=pageになります。
呼び出し用の疑似ディレクトリ(/ site)を作成するとすべて正常に機能しますが、ルートから同じことを実行しようとすると、奇妙なことが起こり始めます。
RewriteBase /
RewriteRule ^site/(.*) engine.php?%{QUERY_STRING}&address=$1
正常に動作します:/ site / about /contactsはeninge.php?address = about/contactsになります
RewriteBase /
RewriteRule ^(.*)$ eninge.php?%{QUERY_STRING}&address=$1
何らかの理由で/about/ contactsがeninge.php?address=eninge.phpになります。