我在.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