所以我有以下重写规则:
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时,它没有显示任何错误.
有谁知道如何解决这一问题?添加到我的代码中可能很简单,但是我似乎无法弄清楚.
谢谢!
解决方法:
在第二条规则中,添加?在斜杠后:
RewriteRule ^([a-zA-Z0-9_-]+)/?$index.php?shop=$1&page=index [NC,L,QSA]
这将使尾随/可选