Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用表单时生成干净的URL_Php_.htaccess_Mod Rewrite - Fatal编程技术网

Php 使用表单时生成干净的URL

Php 使用表单时生成干净的URL,php,.htaccess,mod-rewrite,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 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/search/ted
编辑:

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

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

当您键入URL
/movie/search/ted
时,这一点就起作用了,但当您提交表单时,表单仍然显示为
/movie/index.php?search=ted

重写规则不会更改URL,它们只会告诉服务器解释属于规则
^search/([a-zA-Z0-9]+)/$
like
index.php?search=$1


如果你想更改将要使用的链接,你必须在你的html
中更改它,我该怎么做,因为我已经测试了很多可能性,但仍然没有得到想要的结果。这个答案应该可以帮助你。我能得到的唯一URL似乎是:
localhost/movie/search/?search=ted
我尝试过的所有其他方法似乎都会导致重定向循环或完全失败。此代码易受xss攻击。这是怎么回事?很高兴能在你的评论上有所建树<代码>http://localhost/movie/index.php/'>警报(/xss/)
RewriteCond %{QUERY_STRING} ^search=(.*)$ [NC]
RewriteRule ^$ /search/%1 [NC,R,L] 
RewriteRule ^search/(.+)$ index.php?search=$1 [NC,L]