【问题标题】:Is '|' a recommended separator for semantic URLs?是'|'推荐的语义 URL 分隔符?
【发布时间】:2014-04-01 15:49:25
【问题描述】:

在研究了 Google 和 SO 之后,似乎对此意见不一。

Google Chrome 将 | 分隔符替换为 %7C 时遇到了问题,而 Firefox 和 Safari 则没有。

这是一个例子:

http://www.example.com/page1|sub-page2|sub-page-3

在为语义 URL 选择分隔符时是否需要遵循任何严格的规则,是否有强烈反对(或何时使用| 的变通方法)?

【问题讨论】:

  • 你在哪里使用它,它是“显示的”,并且在不同的浏览器中有所不同?
  • 如果它们是子页面,它应该是/,如果这是一个错字,那么你在sub-page 中使用了-,那么为什么不使用它来代替| 也是?

标签: url delimiter percent-encoding


【解决方案1】:

| 不是 URL 中的有效字符。现代浏览器在发送时会默默地将其编码为%7C,并且可能会或可能不会在地址栏中显示此更改。同样,服务器会默默地为您解码字符。

这在上个千年是个问题,浏览器会因为你没有指定http:// 而崩溃,但今天你可以使用任何你想要的东西,浏览器会处理它。但是,http://example.com/test|fish Markdown 等自动解析器可能不同意它是一个有效的 URL。在这种情况下,它看起来确实如此,但在我的论坛上尝试一下,它会抱怨你。

【讨论】:

    【解决方案2】:

    Internet explorer/chrome 在发出页面请求后在地址栏中显示 url 时使用 url 编码,%7C 是显示管道('|')的安全方式 所以chrome这样做不是问题。

    作为一个厚颜无耻的修复,让所有浏览器的行为方式都相同,为什么不从一开始就使用 %7C 作为分隔符,而不是管道,然后所有浏览器都应该在幕后将其解释为管道, 但在地址栏中显示为 &7C。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多