用mod_rewrite重写GET请求?

时间:2013-12-14 11:54:17

标签: mod-rewrite url-rewriting

任何人都可以解释我如何在搜索表单中重写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]

但这似乎不起作用。如果有人能帮我解决这个问题,我们将非常感激。

1 个答案:

答案 0 :(得分: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]
相关问题