2014-04-01 41 views
-3

我们改编了一个旧网站来使用语义URL,并且由于多种原因,无法使用/作为分隔符。相反,我们使用|作为我们的分隔符。如何防止Google Chrome和IE取代'|'在URL中使用%7C

例如:

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

一切正常,只有一个小问题。谷歌Chrome和IE浏览器正在显示的URL为:

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

我们正在使用|编码我们|分隔符,但Chrome和IE仍与%7C取代。

Firefox和Safari正确显示URL!

+3

并且由于在HTTP URL上下文中将'|'编码为'%7C'完全是_correct_,所以您的抱怨现在完全是......? – CBroe

+0

1.我们担心,使用%7C复制网址可能会导致其他网站出现问题; 2.使得URL难以阅读哪种类型会破坏使用语义URL的目的! –

+5

1.您应该同样担心在URL中使用_unquoted_'|'也可能导致相反的问题,2.那么首先在您的“语义”URL中不要使用非URL安全的字符! – CBroe

回答

2

您在评论中提到“我们会找到另一个分隔符”。

您可能想看看this earlier answer,它描述了URL的哪个部分允许使用哪些字符。

这个,你可以看到,您可以自由使用字符“在会”是

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

在我看来,所有这些人物中,~是可合理地只有一个你的地方|

+0

谢谢弗洛里斯。我有时会看到使用逗号(www.example.com/page,sub-page1,sub-sub-page2)。你对此有何看法? –

+1

@richardTinkler逗号不在未经保留的列表中。尽管你可以避开它。用你认为看起来更好的东西去吧。 – Floris

相关问题