2014-10-09 66 views
0

我在php中使用電子商務網站。現在轉向想象的網址,重寫網址。url重寫並傳遞表單的值

因爲我也有可選變量的可變長度的參數。

例如,

http://example.com/product.php?page=e&id=23&color=blue&size=xxl&width=200&height=100 

在這裏,參數是可選的這意味着,一些變量可以或可以不在url participage除了id

這裏,page=e是固定的,它不是動態的。 (背後的原因是我其他重寫規則一樣^categories^toys等。

和重寫URL應該是其中之一,

http://example.com/e/23/color-blue/size-xxl/ 
http://example.com/e/26/color-black/width-500/height-900/ 
http://example.com/e/56/type-shirt/color-white/height-345/size-xl/ 

我試過下面沒有運氣,

RewriteRule ^e/([^/.]+)/?$ product.php?page=e&url=$1 [L,NC,QSA] 

我越來越喜歡這一切$_GET值,

http://example.com/product.php?page=e&id=23&color=blue&size=xxl&width=200&height=100 

但我想實現這樣的,

http://example.com/e/23/color-blue/size-xxl/width-200/height-100 

如何傳遞與查詢斜槓而不是&的。

是主要的想法背後高於去年的URL是整個幻想URL處理成簡單的PHP中,

,然後使用這些變量在頁面腳本。有沒有比這更好的解決方案?

+0

即使'id'也是可選? – anubhava 2014-10-09 18:59:07

+0

不是,這是強制性的。 – 2014-10-09 19:13:37

回答

0

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代碼:

RewriteEngine On 
RewriteBase/

RewriteRule ^(e)/([0-9]+)/([^-]+)-([^/]*)(/.*)?$ product.php$5?page=$1&id=$2&$3=$4 [L,QSA] 

RewriteRule ^(product\.php)/([^-]+)-([^/]*)(/.*)?$ $1$4?$2=$3 [L,QSA]