假设您使表单的操作指向正确的URL,下面有两个(半)选项:
使用Javascript(jQuery)
jQuery(document).ready( function() {
jQuery("#searchform").submit( function() {
self.location.href = jQuery(this).attr("action") + jQuery("#s").val();
return false;
});
});
您也可以不使用jQuery(如果您不在站点上使用jQuery,也不想为此加载它)。这里有一个简单的版本(可能不是超级跨浏览器,但我还没有测试过),您可以在此基础上进行扩展:
<form action="/suche/" onsubmit="self.location.href=this.getAttribute(\'action\') + document.getElementById(\'s\').value; return false;">
<input type="text" name="s" id="s" />
<input type="submit"></form>
使用重写规则:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^s=(.*)
RewriteRule ^(.*?)/?$ $1/%1? [R=302,L]
这将适用于任何URL,得到?s=。。。如果已通过,您可能希望将其限制为实际搜索,如
RewriteEngine On
RewriteCond %{QUERY_STRING} ^s=(.*)
RewriteRule ^suche/$ /suche/%1? [R=302,L]
如果以这种形式传递多个参数(例如,要搜索的类别和字符串),则必须相应地进行调整,现在它只假设只有一个参数,这就是查询字符串。