2015-04-18 75 views
3

我想讓.htaccess重寫規則映射4個不同的get變量並排除一個字符串。字符串是不可更改的,即。總會保持不變。.htaccess重寫規則忽略字符串,URL中的多個GET變量

當前的URL是:

/car.php?make=bmw&model=z4&year=2006&color=black_metallic 

它應該是這樣的:

car/bmw-z4-2006-black_metallic-for-sale 

這是我迄今所做

RewriteRule ^car/^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ car.php?make=$1&model=$2&year=$3&color=$4 

現在我需要忽略的字符串- 用於出售在漂亮的網址結束。

任何幫助非常感謝!

回答

1

試試這個

RewriteRule ^car/([^/-]+)-([^/-]+)-([^/-]+)-([^/-]+)/?$ car.php?make=$1&model=$2&year=$3&color=$4 [QSA,NC,L] 
+0

'[^ \ - \ /] +'........... – Deadooshka

1

你的分隔符連字符不轉發,因此削減自己的RewriteRule也應該處理相應:

Options -MultiViews 
RewriteEngine On 

RewriteRule ^car/^([^-]+)-([^-]+)-([^-]+)-([^-]+) car.php?make=$1&model=$2&year=$3&color=$4 [L,QSA,NC] 
  • 選項MultiViews所使用的Apache's content negotiation modulemod_rewrite之前運行並使Apache服務器匹配文件的擴展名。所以/file可以在URL中,但它將服務/file.php