如何防止谷歌Chrome和IE替代'|'在URL中为%7C

yi0zb3m4  于 2023-08-01  发布在  Go
关注(0)|答案(2)|浏览(121)

我们已经调整了一个旧网站来使用语义URL,并且由于多种原因,无法使用/作为分隔符。相反,我们使用|作为分隔符。
举例来说:

www.example.com/page|sub-page1|sub-sub-page2

字符串
一切都很好,只有一个小问题。Google Chrome和IE将URL显示为:

www.example.com/page%7Csub-page1%7Csub-sub-page2


我们使用|来编码我们的|分隔符,但Chrome和IE仍然使用%7C替代。
Firefox和Safari会正确显示URL!

cyej8jka

cyej8jka1#

你在评论中提到“我们会找到另一个分离器”。
您可能想看看this earlier answer,它准确地描述了URL的哪些部分允许使用哪些字符。
由此可见,你可以“随意”自由使用的字符有

unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"

字符串
在我看来,在所有这些字符中,~是唯一一个可以合理地取代你的|的字符。

bttbmeg0

bttbmeg02#

这是HTML编码URL的方式,碰巧字符%7C是“”的编码版本|“所以基本上就用~。

相关问题