2015-03-03 75 views
0

我難住這個htaccess的寫規則。htaccess重寫問題添加目錄

我現在有這個規則運作:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /item\.php\?pid=([a-z0-9]+)\ HTTP/ [NC] 
RewriteRule ^item\.php$ http://www.example.com/%1? [R=301,L] 

RewriteRule ^([-a-z0-9]+)$ /item.php?pid=$1 [NC,L] 

原始地址:

http://www.example.com/item.php?pid=2015-hyundai-genesis-coupe 

啓用此網址:

http://www.example.com/2015-hyundai-genesis-coupe 

什麼我需要是這樣的網址:

http://www.example.com/item/2015-hyundai-genesis-coupe 

我嘗試了一堆沒有成功的東西。任何人都熟悉這個?

謝謝!

回答

0

你的htaccess更改爲這個:

Options -Multiviews 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /item\.php\?pid=([a-z0-9]+)\ HTTP/ [NC] 
RewriteRule ^item\.php$ http://www.example.com/item/%1? [R=301,L] 

RewriteRule ^item/([-a-z0-9]+)$ /item.php?pid=$1 [NC,L] 

您可能會或可能不會需要Options線。這是爲了確保在mod_rewrite可以重寫請求之前,mod_negotiation不會取代mod-rewrite並將/item映射到/item.php

此外,您可能需要確保在item.php頁面中有絕對鏈接,否則它們將無法正常工作,因爲您正在通過將其作爲/item/而不是/來更改相對URI庫。您也可以將其添加到頁面的標題:

<base href="/" /> 
+0

感謝喬恩....我得到它的工作! – aerosport 2015-03-03 05:43:05