我的htaccess文件:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^category/(.*)/$ categories.php?cat_name=$1
RewriteRule ^category/(.*)$ categories.php?cat_name=$1
RewriteRule ^category/(.*)/([0-9]*)/$ categories.php?cat_name=$1&page=$2
RewriteRule ^category/(.*)/([0-9]*)$ categories.php?cat_name=$1&page=$2
当用户打开这个页面mywebsite.com/cars/它打开类别汽车的第一页这是正确的,但是当他们写mywebsite。co/cars/2代码$_GET['cat_name']
带来cars/2,这是错误的,因为猫的名字是cars,而2是页码。
如何解决这个问题?
谢谢
您需要将您的规则从最具体到最不具体进行排序:
RewriteRule ^category/(.*)/([0-9]*)/$ categories.php?cat_name=$1&page=$2 [L]
RewriteRule ^category/(.*)/([0-9]*)$ categories.php?cat_name=$1&page=$2 [L]
RewriteRule ^category/(.*)/$ categories.php?cat_name=$1 [L]
RewriteRule ^category/(.*)$ categories.php?cat_name=$1 [L]
并使用[L]
确保命中后没有其他匹配规则