所以我有以下重写规则:
RewriteRule ^([a-z0-9_\-]+)(\.php)?$ index.php?page=$1 [NC,L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?shop=$1&page=index [NC,L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z_-]+).php$ index.php?shop=$1&page=$2 [NC,L,QSA]
一切似乎都很好,如果我去domain.com/shop/然后它工作正常并显示索引。如果我去domain.com/shop/about.php那就完美了。
唯一不起作用的是当我去没有斜杠的domain.com/shop时,它没有显示任何我得到的错误。
有谁知道如何解决这个问题?这可能是添加到我的代码中非常简单的东西,但我似乎无法弄明白。
谢谢!
答案 0 :(得分:5)
在第二条规则中,在尾部斜杠后添加?
:
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?shop=$1&page=index [NC,L,QSA]
这将使尾随/
可选
答案 1 :(得分:2)
我通常以/?$
结束我的规则,这意味着字符串以一个斜杠或没有shash结尾。