我在.htaccess
文件中的以下重写规则:另一个mod_rewrite的斜线问题
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。
太棒了!谢谢。我不知道为什么会发生这种情况,但是Apache是一个复杂的程序,我愿意把它写下来,现在就修好了。 – 2009-02-15 09:42:23