2013-11-06 2 views
3

Недавно я читал несколько веб-страниц, и я обнаружил, что есть много использований, как: href="/./foo/bar.php"Что означает «/./» в ссылке href?

Разве это не то же самое, как href="/foo/bar.php"? Или это что-то, что я не знаю о различиях между двумя способами?

+2

Не могли бы вы привести пример страницы, на которой вы нашли это? –

+4

Да, это то же самое. URI в основном работает идентично дереву каталогов. Такие конструкции следует избегать и показывать плутографию плуториалов. – ErnestV

+0

Скорее всего это сделал кто-то, кто не понимал, как делать навигацию по каталогам или редактор, у которого были плохие правила ... Как вы, вероятно, уже знаете '. /' - это текущий каталог, а '../' - это предыдущий каталог – buzzsawddog

ответ

7

Относительный URL /./foo/bar.php не совпадает с относительным URL /foo/bar.php. Первый имеет /. в начале.

Они имеют такой же эффект. Когда URL-адреса обрабатываются, относительные URL-адреса разрешены на абсолютные URL-адреса, и в этом процессе, если относительный URL-адрес начинается с /./, он заменяется /. Ссылка: STD 66, пункт Remove Dot Segments. (Такая ссылка разрешена по отношению к корню сервера, в основном что-то вроде http://www.example.com/foo/bar.php.)

Таким образом, эти два относительных URL-адреса всегда разрешены к одному и тому же абсолютному URL-адресу. В принципе нет причин использовать более длинный URL-адрес, который выглядит более сложным и запутанным.

Обратите внимание, что это не имеет ничего общего с папками или файлами. Это просто манипуляция строк, основанная на стандарте URL. Являются ли URL-адреса сопоставлены с папками и файлами на усмотрение сервера и в принципе невидимы для окружающего мира.

+1

Спасибо за документы! – ChandlerQ

Смежные вопросы