所以我有这个正则表达式问题,并想知道是否有人可以帮助我?
如果用户访问http://example.com/index.php/,我如何修改/添加到我的正则表达式以防止最后的斜杠?
也
我目前有一个名为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
注意:我也在重写http://example.com/index.php?page=1到http://example.com/page/1等,同样的问题,如何防止斜杠?
非常感谢,我非常感谢任何帮助:)
答案 0 :(得分: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
已编辑以显示完整的规则
第二次编辑在
中添加RewriteCond %{REQUEST_FILENAME} !-d
以上新规则允许仍然访问directorys而不会导致无限重定向循环