Можно . (точка) быть частью пути часть URL? - PullRequest
31 голосов
/ 26 сентября 2011

Действителен ли следующий URL?

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

В соответствии с разделом http://tools.ietf.org/html/rfc1738 элемент hpath URL не может содержать «.»(Период).В приведенном выше случае есть «.»после «модуля», который не разрешен в соответствии с RFC1738.

Я неправильно читаю RFC или этот RFC заменен другим RFC?Некоторые другие RFC позволяют '.'в URL (http://tools.ietf.org/html/rfc1808).

Ответы [ 3 ]

39 голосов
/ 26 сентября 2011

Я не вижу, где 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.

8 голосов
/ 28 декабря 2011

Периоды разрешены. Смотрите раздел «2.3 Незарезервированные символы» в этом документе: http://tools.ietf.org/html/rfc3986

«Символы, которые разрешены в URI, но не имеют зарезервированной цели, называются незарезервированными. Они включают прописные и строчные буквы, десятичные цифры, дефис, точку, подчеркивание и тильду».

1 голос
/ 26 сентября 2011

Нет ничего плохого с точкой в ​​URL.Если вы посмотрите на структуру грамматики в ссылке, которую вы указали, период упоминается через группу 'safe', которая включена через uchar a

Игнорируйте мой ответ, Адамс лучше

...