我的.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
。他们都提出了相同的网站,但出于某种原因,如果我不使用尾随斜线,网址会发生变化,看起来很讨厌。
有什么想法吗?我的.hyaccess
文件中没有其他规则。我还要指出http://www.site.com/news/0
和http://www.site.com/news/0/
不会遇到同样的问题。它们都无形地重定向到http://www.site.com/?action=news&start=0
,这就是我想要的。这似乎只是第三条规则的问题。
如果它有帮助,该网站就在SourceForge.net上。
答案 0 :(得分:9)
一个疯狂的猜测:有一个名为“news”的目录,并且自动Apache目录“添加一个尾部斜杠”重定向正在以一种奇怪的方式与你的RewriteRule进行交互。如果是这样的话,
DirectorySlash Off
可能会有所帮助。
答案 1 :(得分:0)