使用表单时生成干净的URL

时间:2012-07-14 18:17:43

标签: php .htaccess mod-rewrite

以下是表格:

<form action='<?php echo $_SERVER['PHP_SELF'];?>'>
  <p><label>Movie Title:</label><input type='text' name='search'></p>
  <p><input id="submit" type='submit' value='Submit'></p>
</form>

提交表单时,目前URL返回如下:

localhost/movie/index.php?search=ted

我想让URL返回如下:

localhost/movie/search/ted

编辑:

我现在在.htaccess中有以下代码:

RewriteCond %{QUERY_STRING} ^search=(.*)$ [NC]
RewriteRule ^$ /search/%1 [NC,R,L] 
RewriteRule ^search/(.+)$ index.php?search=$1 [NC,L]

当您输入网址/movie/search/ted时,这会有效,但当您提交表单时,它仍然显示为/movie/index.php?search=ted

1 个答案:

答案 0 :(得分:2)

重写规则不会更改网址,只是告诉您的服务器解释属于^search/([a-zA-Z0-9]+)/$的{​​{1}}规则下的网址。

如果您想更改将要使用的链接,则必须在html index.php?search=$1

中更改它