【问题标题】:Is + a disallowed charecter in URLs?+ 是 URL 中不允许使用的字符吗?
【发布时间】:2016-09-10 20:14:57
【问题描述】:

以下网址中有什么不允许的内容?

http://myPortfolio/Showcase/Kimber+Tisdale+Photography

我收到 您提交的 URI 包含不允许的字符。 错误消息。据我所知,+ 是允许的,不是吗?

参考:Which characters make a URL invalid?

【问题讨论】:

    标签: codeigniter url uri codeigniter-3


    【解决方案1】:

    这是一个允许的字符,但不是你使用它的方式。它允许在 url 的查询字符串部分中,而不是在 url 路径名中。

    如果您只是分隔单词,通常使用连字符或下划线,或者使用 %20 表示空格。您可以使用 CI 的 url 助手为您编码字符串:

    $title = 'Kimber Tisdale Photography';
    $url_title = url_title($title, '-');
    // ouptut kimber-tisdale-photography
    

    http://www.codeigniter.com/user_guide/helpers/url_helper.html#url_title

    【讨论】:

      【解决方案2】:

      + 允许在 URI 路径中。

      你可以自己查:

      1. 访问URI standard
      2. 检查Path 组件中允许使用哪些字符。
      3. 请注意,每个非空路径都可能包含来自segment 集合的字符。
      4. 请注意,segment 集合由来自pchar 集合的字符组成。
      5. 请注意,pchar 集包含来自 sub-delims 集的字符。
      6. sub-delims 被定义为包括:

      “!” /“$”/“&”/“'”/“(”/“)”/“*”/“+”/“”/“;” / "="

      如您所见,+ 已在此处列出。

      (See my list of all allowed characters in URI paths.)

      HTTP(S) URI 路径中 + 的一个突出示例是 Google Plus 配置文件,例如:

      https://plus.google.com/+MattCutts

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-09
        • 2023-03-06
        • 2016-03-02
        • 2011-03-29
        • 2014-11-23
        • 1970-01-01
        相关资源
        最近更新 更多