用javascript重写表单URL

用javascript重写表单URL,javascript,jquery,http,url,redirect,Javascript,Jquery,Http,Url,Redirect,搜索表单通常会转到丑陋的URL。如果我想让用户看到漂亮的URL,我需要在服务器端重写它们,并通过http重定向它们 我希望避免这种往返,并用一些简单的javascript代码重写这些URL。 (如果不启用javascript,您将获得通常的http重定向) 最可靠的方法是什么?例如,如果您丑陋的URI采用 /search.php?query=[input] /search/[input] 您的好URI采用 /search.php?query=[input] /search/[input]

搜索表单通常会转到丑陋的URL。如果我想让用户看到漂亮的URL,我需要在服务器端重写它们,并通过http重定向它们

我希望避免这种往返,并用一些简单的javascript代码重写这些URL。 (如果不启用javascript,您将获得通常的http重定向)


最可靠的方法是什么?

例如,如果您丑陋的URI采用

/search.php?query=[input]
/search/[input]
您的好URI采用

/search.php?query=[input]
/search/[input]
保留往返实现(使用PHP重定向和URL重写),以防客户端没有JavaScript。对于那些这样做的人,截取相关表单的
submit
事件(使用事件对象的
preventDefault
方法),并在事件处理程序中执行如下操作

location = '/search/' + encodeURIComponent(queryInputObject.value);

将给出
http://host/target/...

为什么您如此关心您的搜索URL的外观?与应该具有友好永久链接的静态页面不同,搜索结果通常是用户填写搜索表单而不是手动键入URL的结果。用户可以使用搜索表单和各种静态链接访问相同的页面。我正在尝试使它们兼容。必须对附加到URI的值进行转义。