URL正则表达式 - 从文件名和URL结尾删除尾部斜杠?
问题描述:
所以我有这个正则表达式的问题,并想知道是否有人可以帮助我?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=1到http://example.com/page/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
上面的新规则允许导演仍然可以访问,而不会导致无限重定向循环
嘿感谢您的答复,但它会导致http://example.com/reviews/reviewTitle或http://example.com /新闻/ reviewTitle根本不工作(404未找到),并添加一个尾部斜线导致内部服务器错误:/ – Mac 2011-02-05 13:48:20