我该怎么删除'?'在GET的URL中?

时间:2013-04-29 13:56:18

标签: html

我有一个简单的文本框

<form action="http://www.google.com" method="get">
Something <input type="text" name="something">
<input type="submit">
</form> 

如果我在输入中输入内容,则会显示网址https://www.google.com/?something=something2 - 在这种情况下,something2是用户输入的内容。 但我希望看到这样的网址https://www.google.com/something=something2

我已经尝试.htaccess,但我已经失败了。

RewriteEngine On
RewriteRule .*  /%{QUERY_STRING}? [L]

4 个答案:

答案 0 :(得分:3)

一个标准,查询参数必须在URL中查看,并将其与?分开。浏览器只知道这个标准并坚持它。

如果您想要一个不使用查询参数的自定义URL架构,请在表单提交时使用Javascript自行构建URL,或者在服务器端重定向以使URL看起来像您想要的那样。

你所拥有的RewriteRule用于内部重写网址,它不会改变网址对客户端的看法。您必须从服务器发出重定向才能实现这一点,如下所示:

  1. 浏览器使用标准查询参数提交表单:example.com/foo?bar=baz
  2. 服务器使用重写的网址进行响应:Location: /foo/bar=baz
  3. 客户重复请求example.com/foo/bar=baz

答案 1 :(得分:0)

我不知道你为什么要这样做,但是你需要做两件事:

  1. 使用GET
  2. 时,防止以这种方式提交网址的浏览器的默认行为
  3. 编写一个合适的.htaccess文件来处理
  4. 要执行第一件事,请在表单上的onsubmit事件中添加事件处理程序,防止默认行为,然后通过附加输入中的值将用户重定向到您要使用的URL。 / p>

    第二件事可以通过使用重写规则来实现。

答案 2 :(得分:0)

这个?因为method =“get”在表单中出现,如果你把它改成POST,所以你要把数据隐藏到不在URL中,另一点要在URL中得到“something = something2”你必须用java脚本来改变通过附加您的部分来处理此表单的操作,此java脚本可以存在于:

onBlur of text field

点击提交

onSubmit of Form但你有自己提交的句柄

答案 3 :(得分:-2)

我可能错了,但我认为你不能。 '?'告诉URL在查询字符串后面的内容。至少不是你传递的未加密数据。密码/用户名当然是另一回事。