2011-02-05 141 views
1

所以我有這個正則表達式的問題,並想知道是否有人可以幫助我?URL正則表達式 - 從文件名和URL結尾刪除尾部斜槓?

如果用戶訪問http://example.com/index.php/我如何修改/添加到我的正則表達式以防止結尾處的斜線(s)?

我現在有一個網頁叫做post.php中,可以像這樣http://example.com/reviews/reviewTitle/http://example.com/news/newsTitle/

再次

,我怎麼能阻止這個結尾斜槓訪問?

下面是正則表達式我到目前爲止:

RewriteEngine on 
RewriteRule ^reviews/([^/\.]+)/?$ reviews/post.php?title=$1 [L] 
RewriteRule ^news/([^/\.]+)/?$ news/post.php?title=$1 [L] 
RewriteRule ^page/(.*) index.php?page=$1 

注:IM也重新書寫http://example.com/index.php?page=1http://example.com/page/1等,同樣的問題,我怎麼能防止尾隨斜線?

非常感謝,我非常感謝所有幫助:)

回答

1

嘗試添加該規則之後RewriteEngine on

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ $1 [R=301] 
RewriteRule ^reviews/([^/\.]+)$ reviews/post.php?title=$1 [L] 
RewriteRule ^news/([^/\.]+)$ news/post.php?title=$1 [L] 
RewriteRule ^page/(.*) index.php?page=$1 

編輯展示全套的規則

編第2次添加在

RewriteCond %{REQUEST_FILENAME} !-d 

上面的新規則允許導演仍然可以訪問,而不會導致無限重定向循環

+0

嘿感謝您的答覆,但它會導致http://example.com/reviews/reviewTitle或http://example.com /新聞/ reviewTitle根本不工作(404未找到),並添加一個尾部斜線導致內部服務器錯誤:/ – Mac 2011-02-05 13:48:20