2013-04-09 72 views
0

我有一個簡單的形式與方法得到阿帕奇重寫搜索URL

<form method="get" action="search.php"> 
<input type="text" name="category_name" value="cars"> 
<input type="text" name="location" value="newyork"> 
</form> 

重定向到這個鏈接:

http://my-site.com/search.php?category_name=cars&location=newyork 

我會做的成爲重寫規則:

http://my-site.com/cars/newyork.html 

我已嘗試使用此代碼但未能正常工作:

RewriteEngine on 
RewriteRule (.*)/(.*)\.html$ search.php?category_name=$1&location=$2 [R=301,L] 
+3

的第一個URL是瀏覽器發送HTML GET表單的格式 - 您不能更改該服務器端。 – CBroe 2013-04-09 12:26:15

+0

如何解決?這是可能的PHP重定向? – Mike 2013-04-09 13:04:10

+0

請求到達服務器後,您可以執行顯式重定向。或者你在客戶端執行,而不是以正常方式發送表單,而是使用JS讀取值並手動創建URL。 – CBroe 2013-04-09 13:15:40

回答

0

包括您,嘗試添加這些規則的規則:

RewriteCond %{THE_REQUEST} ^GET\ /search\.php\?category_name=([^&]+)&location=([^&\ ]+) 
RewriteRule^/%1/%2.html? [L,R=301] 

此外,您可能需要添加幾個條件,你確實有規則:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)/([^/]*)\.html$ search.php?category_name=$1&location=$2 [R=301,L]