2011-11-08 119 views
0

我正在嘗試和失敗,現在重寫我的網址友好的SEO。你能指出我可能會出錯的地方嗎?apache htaccess重寫網址爲友好

我想改寫這個網址:

http://www.chillisource.co.uk/product?&cat=Grocery&q=Daves%20Gourmet&page=1&prod=B0000DID5R&prodName=Daves_Insanity_Sauce 

要這樣:

http://www.chillisource.co.uk/product/Grocery/Daves%20Gourmet/1/B0000DID5R/Daves_Insanity_Sauce 

這是我的.htaccess

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

RewriteRule ^product/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+) /product?&cat=$1&q=$2&page=$3&prod=$4&prodName=$5 

,第一部分讓我去無文件管理中的.php文件。

目前這給了我500錯誤,當我嘗試去:http://www.chillisource.co.uk/product/Grocery/Daves%20Gourmet/1/B0000DID5R/Daves_Insanity_Sauce

我的mod_rewrite上讀了,但我是一個新手程序員,發現很難去。我沒有得到$ 1,$ 2,$ 3,$ 4,$ 5這些是我的url變量轉移到另一端的變量,([a-zA-Z0-9] +)是正確的嗎?

在此先感謝。

+0

爲了將來的使用,你可以看看下面的網站。一些非常好的工作重寫代碼:http://corz.org/server/tricks/htaccess2.php?page=all – MER

回答

0

$ 1對應於您的重寫規則的第一部分中的第一組圓括號。第二套括號爲2美元等等。

Daves%20Gourmet包含一個空格字符,在您的第二個模式中沒有考慮到,即第二組括號之間的東西。再次,你沒有照顧網址中的_

我會嘗試這個

RewriteRule ^product/([a-zA-Z]+)/([\sa-zA-Z0-9]+)/([0-9]+)/([A-Z0-9]+)/([a-zA-Z_]+) /product?&cat=$1&q=$2&page=$3&prod=$4&prodName=$5 

假設你的頁面參數始終是一個整數,你的第四個參數中只包含大寫字母。

+0

謝謝你這是非常有用的 –