当我提交表格时我有
<form action="/search/" >
<input type="text" name='q' / value="">
<input type="submit" value="Search" />
</form>
http://domain/search/?q=submit_text_here
我想点击提交按钮后有网址 http://domain/search/submit_text_here
这怎么可能?谢谢!
答案 0 :(得分:1)
您需要手动处理表单提交。为此,您将绑定到onsubmit
表单事件,防止其默认行为并重定向到正确的URL。在你的情况下这样的事情:
document.querySelector('form').addEventListener('submit', function(e) {
e.preventDefault();
location.href = '/search/' + encodeURIComponent(this.elements.q.value);
}, false);
答案 1 :(得分:1)
您要找的是RewriteRule
。这是您的Web目录的.htaccess
文件中指定的规则,它规定了服务器应该执行的特殊操作。使用此方法,我们可以获取您的查询字符串,将其映射到用户友好的URL,并使用标准的index.php文件或您选择的任何文件对其进行削减。
<强>的.htaccess 强>
# Match a condition:
# http://example.com/search/?query=find+something
RewriteCond %{QUERY_STRING} query=([^&]+)
# Redirect that condition to
# http://example.com/search/find+something
RewriteRule ^search/$ search/%1 [L,R=301,NC]
# Match the previous rule, and serve results from our search page
RewriteRule ^search/(.*)$ search.php?q=$1 [L,NC]
所有其他回复都会按照您的要求执行,并更改网址,但是没有人会将新格式化的网址映射到将提供结果的单个网页。
答案 2 :(得分:0)
可以通过PHP:
if (isset($_GET['q'])) {
header ('Location: http://domain/search/' . $_GET['q']);
exit;
}
当然,您需要在.htaccess
重写此网址以避免404 Not Found
错误。