2013-01-07 61 views
-1

我需要一些幫助來寫一個動態規則,我可以添加由「/」,而不是名1 =值& 2 =值2.htaccess的重寫的名稱/值對

分隔的名稱/值對http://www.example.com/jeans.html?color=24&manufacturer=3 http://www.example.com/jeans/color/black/manufacturer/jonh-miller.html

&

http://www.example.com/jeans.html?color=24&manufacturer=3&size=1 的http:// w^ww.example.com/jeans/color/black/manufacturer/jonh-miller/size/xl.html

等等。 任何一個可以指向我的一些很好的文檔?

感謝

回答

1

使用RewriteMap指令

http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritemap

你應該首先匹配參數,然後使用地圖,例如:

RewriteMap my_redir_map1 txt:map_rewrite.txt 
RewriteMap my_redir_map2 txt:map_rewrite.txt 

RewriteCond %{QUERY_STRING} ^.*(\bcolor\b=(\w+|&\w+;)+) 
RewriteCond %{QUERY_STRING} ^.*(\bmanufacturer\b=(\w+|&\w+;)+) 
RewriteRule ^/([^/\.]+).html /$1/color/${my_redir_map1:%1}/manufacturer/${my_redir_map2:%2}.html [L] 

這應該匹配的情況:

http://www.example.com/jeans.html?color=24&manufacturer=3

,並改寫爲:

http://www.example.com/jeans/color/black/manufacturer/jonh-miller.html

請注意:該解決方案需要一個地圖的每個參數和每個最終路徑重寫。