別のmod_rewriteの末尾のスラッシュ質問
-
23-08-2019 - |
質問
私は私の.htaccess
ファイルに次の書き換えルールがあります:
RewriteEngine on
RewriteRule ^news/([0-9]+)/?$ /?action=news&start=$1 [L]
RewriteRule ^man/([a-zA-Z0-9_]+)/?$ /?action=man&page=$1 [L]
RewriteRule ^([a-zA-Z0-9_]+)/?$ /?action=$1 [L]
その後のすべては、オプションのスラッシュをチェックする/?
で終わります。これは動作します - それは私が欲しいものであるhttp://www.site.com/news/
ページ、に到達するためにhttp://www.site.com/news
またはnews
のいずれかを使用できることを意味します。 http://www.site.com/news/
が正常に動作し、静かにリダイレクトし、すべてが楽しいものは、http://www.site.com/news
が目に見えて何らかの理由でhttp://www.site.com/news/?action=news
にリダイレクトされている間の問題は、ということです。どちらも同じサイトを思い付くが、何らかの理由で私は最後のスラッシュをオフのままにしておくと、URLの変更と、すべての厄介に見えます。
これで何が起こっている任意のアイデア?私は私の.hyaccess
ファイルには他のルールを持っていません。私はまた、http://www.site.com/news/0
とhttp://www.site.com/news/0/
が同じ問題に悩まされないことを指摘します。どちらも私が欲しいものである、http://www.site.com/?action=news&start=0
する目に見えないリダイレクトします。それはそれだけで3番目のルールに問題があるようです。
、サイトはSourceForge.netである。
解決
野生の推測:そこに「ニュース」という名前のディレクトリがあり、自動Apacheのディレクトリはリダイレクトがで蹴ると奇妙な方法であなたのRewriteRuleと相互作用している「最後のスラッシュを追加します」。その場合は、
DirectorySlash Off
に役立つことがあります。
他のヒント
たぶん MultiViews
には、この動作を引き起こしています。このオプションを無効にしてみます:
Options -MultiViews
<時間>
もう一つの推測は:代わりに先頭のスラッシュを削除する
。