表单提交按钮后重定向

时间:2015-02-11 07:28:54

标签: html

当我提交表格时我有

<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

这怎么可能?谢谢!

3 个答案:

答案 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错误。