搜索框将值传递给url而不是=?符号

时间:2014-05-10 01:46:16

标签: javascript php html forms search

我有一个网站,目前只需在/ search /之后在网址中键入一个值即可进行搜索 例如,要搜索单词hello,我只需使用url:www.mywebsite.com/search/hello

所以我现在想创建一个非常简单的搜索框来搜索,但我不想拥有=?插入我的网址

例如,目前我有代码

<form action="http://www.mywebsite.com/search/" method="get"><input class="nice_search" type="text" name="q" placeholder="Search...">
 <input class="nice_submit" type="submit" value="SEARCH"></form>

但当我只想要http://www.mywebsite.com/search?q=hello

时,这会产生类似http://www.mywebsite.com/search/hello的网址

2 个答案:

答案 0 :(得分:2)

mod_rewite,是比客户端更好的方法:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(.*&)?q=([^&]+)(&.*)?$ [NC]
RewriteRule ^search/$ /%2? [R=301,L]

替代方案,如果你想测试:

RewriteEngine On
RewriteRule ^search/([^/]*)$ /search?q=$1 [L]

答案 1 :(得分:-1)

您可以使用javascript / jquery执行您想要的操作。只需在表单上添加提交事件并防止默认。在那种情况下,您将获得搜索值并将用户发送到新页面搜索/ hello。如果您需要有关代码的帮助,请告诉我。

注意添加的id =“searchForm”

<form id="searchForm" action="http://www.mywebsite.com/search/" method="get"><input class="nice_search" type="text" name="q" placeholder="Search...">
 <input class="nice_submit" type="submit" value="SEARCH"></form>

像这样的东西

$('#searchForm').submit(function(e){
   e.preventDefault();
   var search = $('.nice_search').val();
   var url = $(this).attr('action');
   //alert('search='+search+ ' url='+url);
   window.location.href = url+search;
});