【问题标题】:Can . (period) be part of the path part of an URL?能 。 (句点)是 URL 路径部分的一部分吗?
【发布时间】:2011-11-25 05:08:48
【问题描述】:

以下网址有效吗?

http://www.example.com/module.php/lib/lib.php

根据https://www.rfc-editor.org/rfc/rfc1738 部分,URL 的 hpath 元素不能包含“。” (时期)。在上述情况下,有一个“。”在“模块”之后,根据 RFC1738 是不允许的。

是我读错了 RFC 还是这个 RFC 被另一个 RFC 成功了?其他一些 RFC 允许使用 '.'在网址中 (https://www.rfc-editor.org/rfc/rfc1808)。

【问题讨论】:

    标签: url rfc


    【解决方案1】:

    我看不出 RFC1738 在 URL 中哪些地方不允许使用句点 (.)。以下是那里的一些摘录:

    hpath          = hsegment *[ "/" hsegment ]
    hsegment       = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
    uchar          = unreserved | escape
    unreserved     = alpha | digit | safe | extra
    safe           = "$" | "-" | "_" | "." | "+"
    

    所以你的问题的答案是:是的,http://www.example.com/module.php/lib/lib.php 是一个有效的 URL。

    【讨论】:

      【解决方案2】:

      正如其他人所指出的,网址中允许使用句点,但要小心。如果在 URL 的部分路径中使用了单句点或双句点,浏览器会将其视为路径的更改,您可能无法获得您想要的行为。

      例如:

      • www.example.com/foo/./ 重定向到 www.example.com/foo/
      • www.example.com/foo/../ 重定向到 www.example.com/

      而以下将重定向:

      • www.example.com/foo/bar.biz/
      • www.example.com/foo/..biz/
      • www.example.com/foo/biz../

      【讨论】:

        【解决方案3】:

        句号是允许的。请参阅本文档中的“2.3 未保留字符”部分: https://www.rfc-editor.org/rfc/rfc3986

        “在 URI 中允许但没有保留用途的字符称为非保留字符。这些字符包括大小写字母、十进制数字、连字符、句点、下划线和波浪号”。

        【讨论】:

          【解决方案4】:

          网址中的句点没有错。如果您在提供的链接中查看语法中的构成,则通过“safe”组提到了句号​​,该组通过uchara 包含

          忽略我的回答,亚当斯更好

          【讨论】:

            猜你喜欢
            • 2011-10-10
            • 1970-01-01
            • 2011-10-20
            • 2011-12-15
            • 1970-01-01
            • 1970-01-01
            • 2012-12-18
            • 1970-01-01
            • 2013-12-29
            相关资源
            最近更新 更多