2014-06-25 68 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