2013-12-14 131 views
0

任何人都可以解釋我如何在搜索表單中重寫獲取請求。用mod重寫重寫GET請求?

這是我的形式

<form action="searchpage.php" method="get "> 
     <input type="text" name="search" placeholder="Search" required> 
     <button type="submit">Search</button> 
</form> 

的代碼,這是我在我的.htaccess

RewriteRule searchpage-search-(.*)\.html$ searchpage.php?search=$1 [L] 

使用的線路,但這並不似乎工作。如果任何人都可以幫助我,這將是最感謝。

+0

您是否真的想在用戶執行搜索請求時對用戶進行外部重定向?這似乎適得其反。 – Sumurai8

回答

1

該表單請求/searchpage.php?search=term,因此您首先需要外部重定向將用戶從該網址重定向到您的自定義網址。然後你需要一個內部重寫來正確解釋。要爲每個搜索請求執行外部重定向,您的用戶所做的事情似乎對我來說會產生負面影響。

#The external redirect 
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /searchpage\.php\?search=(.*)\ HTTP 
RewriteRule ^searchpage\.php$ /searchpage-search-%2.html? [R,L] 

#Internal rewrite 
RewriteRule searchpage-search-(.*)\.html$ searchpage.php?search=$1 [L] 
+0

它可以工作,但它仍然在'.html'後面的URL末尾顯示'?search = term' – zack

+0

@zack在第一條規則中做了一個小改動。忘記追加一個尾部的'?'來清除當前的查詢字符串。 – Sumurai8

+0

非常感謝。它的作用就像一種魅力。再次感謝你的幫助。 – zack