0

这个问题是关于在关闭 Javascript 时从输入表单中获取“漂亮”的短 URL,即使是“纯”HTML。它是关于一种形式,它为用户提供了一些选择,每个选择都以单选按钮的形式,但大多数用户实际上最多会从默认设置更改一个值,或者根本不更改:

<form method=get action="form.html">
    setting 1:
    <input type="radio" name="val1" value="default1" checked>&nbsp;default value
    <input type="radio" name="val1" value="alt1">&nbsp;alternative value
    <input type="radio" name="val1" value="other1">&nbsp;other alternative value
    <br>
    setting 2:
    <input type="radio" name="val2" value="default2" checked>&nbsp;default value
    <input type="radio" name="val2" value="alt2">&nbsp;alternative value
    ...
</form>

因此,当用户提交表单时,URL 将如下所示:

form.html?val1=default1&val2=alt2&val3=default3&val4=default4

但我希望 URL 如下所示:

form.html?val2=alt2

我知道如何使用客户端 javascript 实现所需的漂亮 URL。而且我也知道如何使用服务器端重定向来清理 URL,以防 javascript 关闭。但是,是否还有一种方法可以在没有 javascript 和服务器重定向的情况下,仅使用纯 HTML 来实现简短而漂亮的 URL?

但问题是,至少谷歌倾向于“玩弄”这些表单,从而生成新的 URL,这些 URL 被推入谷歌爬虫需要爬取的积压工作中。由于积压中的 URL 数量和爬虫请求 URL 的频率,如果谷歌从最终 URL 开始并且不需要 301 重定向,这将是一个很大的帮助。

但是,我尝试在没有 javascript/redirect 的情况下从 URL 中删除 val1=default1 参数失败了。例如:

<input type="radio" name="val1" value="" checked>&nbsp;default value

仍然将“val1=”放入 URL。和

<input type="radio" name="val1" checked>&nbsp;default value

在 URL 中产生“val1=on”。显然,单选按钮的默认值是“on”。

有什么建议么?

4

1 回答 1

0

使用方法

`<form method="post" action="form.html">`

而不是方法get

你会得到一个不错的 url form.html而不是

form.html?val1=default1&val2=alt2&val3=default3&val4=default4

但是您还必须更改处理表单数据并对其进行处理的页面(此处为form.html )的编码。

于 2013-08-10T15:49:30.090 回答