我有一个简单的文本框
<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]
答案 0 :(得分:3)
一个标准,查询参数必须在URL中查看,并将其与?
分开。浏览器只知道这个标准并坚持它。
如果您想要一个不使用查询参数的自定义URL架构,请在表单提交时使用Javascript自行构建URL,或者在服务器端重定向以使URL看起来像您想要的那样。
你所拥有的RewriteRule
用于内部重写网址,它不会改变网址对客户端的看法。您必须从服务器发出重定向才能实现这一点,如下所示:
example.com/foo?bar=baz
Location: /foo/bar=baz
example.com/foo/bar=baz
答案 1 :(得分:0)
我不知道你为什么要这样做,但是你需要做两件事:
GET
.htaccess
文件来处理要执行第一件事,请在表单上的onsubmit
事件中添加事件处理程序,防止默认行为,然后通过附加输入中的值将用户重定向到您要使用的URL。 / p>
第二件事可以通过使用重写规则来实现。
答案 2 :(得分:0)
onBlur of text field
点击提交
onSubmit of Form但你有自己提交的句柄
答案 3 :(得分:-2)
我可能错了,但我认为你不能。 '?'告诉URL在查询字符串后面的内容。至少不是你传递的未加密数据。密码/用户名当然是另一回事。