Допускаются ли двоеточия в URL-адресах?
Я думал, что использование двоеточий в URIs было "незаконным". И тут я увидел, что vimeo.com использует URI как http://www.vimeo.com/tag:sample.
- Что вы думаете об использовании двоеточий в URIs?
- Как заставить мой сервер Apache работать с синтаксисом "двоеточия", потому что теперь он бросает "Доступ запрещен!- ошибка, когда в первом сегменте URI имеется двоеточие?
3 ответов:
Двоеточия допускаются в пути URI. Но вы должны быть осторожны при написании относительных путей URI с двоеточием, так как это не допускается при использовании следующим образом:
<a href="tag:sample">В этом случае
tagбудет интерпретироваться как схема URI. Вместо этого вам нужно написать его так:<a href="./tag:sample">
Также обратите внимание на разницу между Apache в Linux и Windows . Apache на Windows почему-то не позволяет двоеточиям использоваться в первой части URL. Однако Linux не имеет никаких проблем с этим.
Допускаются ли двоеточия в URL-адресах?
Да, если только он не находится в первом сегменте пути ссылки на относительный путь
Например, у вас может быть такой URL:
И вы можете использовать его обычно как абсолютный URL или некоторые относительные варианты:
<a href="https://en.wikipedia.org/wiki/Template:Welcome">Welcome Template</a> <a href="/wiki/Template:Welcome">Welcome Template</a> <a href="wiki/Template:Welcome">Welcome Template</a>Но это было бы недопустимо:
<a href="Template:Welcome">Welcome Template</a>Потому что "шаблон" здесь был бы ошибочно принят за схему протокола. Вы пришлось бы использовать:
<a href="./Template:Welcome">Welcome Template</a>Для использования относительной ссылки со страницы на том же уровне иерархии.
Спецификация
См. RFC 3986, раздел 3.3:Компонент path содержит данные, обычно организованные в иерархическом порядке. форма, которая вместе с данными в неиерархическом компоненте запроса (Раздел 3.4), служит для определения ресурса в пределах сферы действия Схема Ури и полномочия по присвоению имен (если таковые имеются). Путь завершен по первому вопросительному знаку ("?") или знак числа ( " # " ), или к концу Ури.
Если URI содержит компонент authority, то компонент path должен быть либо пустым, либо начинаться с символа косой черты ("/"). Если Ури не содержит компонента полномочий, то путь не может начаться с двумя косыми знаками ("//"). кроме того, ссылка URI (Раздел 4.1) может быть ссылка на относительный путь, в этом случае первый сегмент пути не может содержать двоеточие (":"). АБНФ требуется пять отдельных правил, чтобы устранить двусмысленность в этих случаях, только одно из них который будет соответствовать подстроке пути в пределах данной ссылки URI. Мы использовать общий термин "путь", чтобы описать Ури подстроки сопоставляется синтаксическим анализатором с одним из этих правил. [курсив добавлен]
Пример URL, который использует двоеточие:
Comments