Htaccess url重写错误


htaccess urlrewriting error

我的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]确保命中后没有其他匹配规则