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]+)/$
likeindex.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]