我知道在URL重寫過程中會出現很多錯誤,這就是爲什麼谷歌建議不要將URL轉換爲乾淨的URL,如果你不完全明白你在做什麼。用動態URL重寫表單提交到乾淨的URL
我想問一下,如果這是正確的方式去做這件事?
我有一個結構,像這樣一個網站:
www.example.com/index.php?widget=blue &大小= 10 &重量= 50
我使用mod_rewrite的做這麼幹淨的URL,可以使用這樣的:
www.example.com/blue/10-inches/50-grams/
我用下面的代碼來實現這一點:
RewriteEngine on
RewriteRule ^([a-zA-Z-]+)/([0-9-]+)-inches/([0-9-]+)-grams/?$ index.php? widget=$1&size=$2&weight=$3 [NC,L]
使這部分工作..但是有索引頁面上的表單,以及根據下拉框選擇和按下提交按鈕更改index.php頁面上的產品。
Dropdown 1 = blue, red, green
Dropdown 2 = 10, 20, 30
Dropdown 3 = 25, 50, 100
默認這裏會發生什麼事是,當你選擇說,紅色,20,100,然後點擊提交,你會得到舊的URL一樣www.example.com/index.php?widget=red &大小= 20 &重量= 100
我怎麼能在這裏做重定向?我目前正在做這樣說:
更改<form action="index.php" method="GET">
到<form action="redirect-url.php" method="GET">
這種新的重定向消息url.php將有以下代碼:
<?php
header('Location: www.example.com/'.$_GET[widget].'/'.$_GET[size].'/'.$_GET[weight].'/');
exit();
?>
這應該引起Apache的重寫規則我張貼上面,使其工作。
想法?這會工作嗎?有更清潔的方法嗎?