+ 是 URL 中不允许的字符吗?

Is + a disallowed charecter in URLs?

以下哪些内容是不允许的URL?

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

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

参考:Which characters make a URL invalid?

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

如果只是分隔单词,通常使用连字符或下划线,或 %20 表示 space。您可以使用 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

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