Допускаются ли двоеточия в URL-адресах?



Я думал, что использование двоеточий в URIs было "незаконным". И тут я увидел, что vimeo.com использует URI как http://www.vimeo.com/tag:sample.




  1. Что вы думаете об использовании двоеточий в URIs?

  2. Как заставить мой сервер Apache работать с синтаксисом "двоеточия", потому что теперь он бросает "Доступ запрещен!- ошибка, когда в первом сегменте URI имеется двоеточие?

1023   3  

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

    Ничего не найдено.