質問

私は私の.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/0http://www.site.com/news/0/が同じ問題に悩まされないことを指摘します。どちらも私が欲しいものである、http://www.site.com/?action=news&start=0する目に見えないリダイレクトします。それはそれだけで3番目のルールに問題があるようです。

それがいずれかを助けた場合は、

、サイトはSourceForge.netである。

役に立ちましたか?

解決

野生の推測:そこに「ニュース」という名前のディレクトリがあり、自動Apacheのディレクトリはリダイレクトがで蹴ると奇妙な方法であなたのRewriteRuleと相互作用している「最後のスラッシュを追加します」。その場合は、

DirectorySlash Off

に役立つことがあります。

他のヒント

たぶん MultiViews には、この動作を引き起こしています。このオプションを無効にしてみます:

Options -MultiViews
<時間>

もう一つの推測は:代わりに先頭のスラッシュを削除する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top