2014-06-25 70 views
1

这是我的htaccess文件:htaccess的URL重写错误

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']带来汽车/ 2这是错误的,因为猫的名字是汽车,2是页码。

如何解决这个问题?

感谢

回答

3

你需要你的规则从最具体到最不具体的排序:

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]一击后匹配任何其他规则。

+0

谢谢。有用。我会在10分钟内接受它。但[L]做了什么? – zeeks

+0

L代表最后一个。含义在一条规则匹配后,将不会检查其他规则。 – colburton

+0

好的,谢谢:) – zeeks