Прямой ответ на ваш пример
В случае 1 , index
является «компонентом каталога» URL, а в случае 2 index
является «файловым компонентом» URL. Это не зависит от того, является ли это обычный файл или каталог на веб-сервере - см. Объяснение ниже. Я бы назвал обе страницы «страницей», если сервер обслуживает HTML-страницу по этим URL-адресам.
Дело 1: (ссылки с <a href="http://www.example.com/xxx1/xxx2/xxx3/index/" rel="nofollow noreferrer">http://www.example.com/xxx1/xxx2/xxx3/index/</a>
)
index.html
-> <a href="http://www.example.com/xxx1/xxx2/xxx3/index/index.html" rel="nofollow noreferrer">http://www.example.com/xxx1/xxx2/xxx3/index/index.html</a>
./index.html
-> <a href="http://www.example.com/xxx1/xxx2/xxx3/index/index.html" rel="nofollow noreferrer">http://www.example.com/xxx1/xxx2/xxx3/index/index.html</a>
../index.html
-> <a href="http://www.example.com/xxx1/xxx2/xxx3/index.html" rel="nofollow noreferrer">http://www.example.com/xxx1/xxx2/xxx3/index.html</a>
/index.html
-> <a href="http://www.example.com/index.html" rel="nofollow noreferrer">http://www.example.com/index.html</a>
Случай 2: (ссылки с <a href="http://www.example.com/xxx1/xxx2/xxx3/index" rel="nofollow noreferrer">http://www.example.com/xxx1/xxx2/xxx3/index</a>
)
index.html
-> <a href="http://www.example.com/xxx1/xxx2/xxx3/index.html" rel="nofollow noreferrer">http://www.example.com/xxx1/xxx2/xxx3/index.html</a>
./index.html
-> <a href="http://www.example.com/xxx1/xxx2/xxx3/index.html" rel="nofollow noreferrer">http://www.example.com/xxx1/xxx2/xxx3/index.html</a>
../index.html
-> <a href="http://www.example.com/xxx1/xxx2/index.html" rel="nofollow noreferrer">http://www.example.com/xxx1/xxx2/index.html</a>
/index.html
-> <a href="http://www.example.com/index.html" rel="nofollow noreferrer">http://www.example.com/index.html</a>
Таким образом, единственное, что остается неизменным, это абсолютные ссылки - 4.
Объяснение
Ссылки относятся к URL-адресу браузера, который может не совпадать с исходным URL-адресом (например, при перенаправлении HTTP). Большинство веб-браузеров обновляют строку URL с помощью текущего адреса после перехода по ссылке или перенаправления, поэтому, если вы только что не отредактировали это, вы увидите, что адрес имеет значение.
URL-адреса, заканчивающиеся косой чертой, считаются ссылками на каталоги (подразумевается RFC2396 для синтаксиса URI, хотя на самом деле он их так не называет), иначе они считаются ссылками на файлы в каталогах.
- Примечание: Это не обязательно будет соответствовать типу пути файловой системы (если он есть), используемому веб-сервером для обслуживания файла. Большинство веб-серверов, при запросе запрашивается сопоставление URL-адреса с каталогом в их файловой системе, либо он будет обслуживать файл в каталоге с некоторым именем набора (часто index.html, но выбор обычно может быть настроен), либо список каталогов HTML, сгенерированный сервером ( или ошибка доступа, если это было отключено). То же самое обычно применяется при запросе «URL-адреса файла» для аналогичного пути без завершающего слеша, и в этом случае «URL-адрес файла» фактически сопоставляется с путем к файловой системе каталога. -
Это может привести к несоответствиям, таким как приведенный выше пример, где «URL-адрес файла» <a href="http://www.example.com/xxx1/xxx2/xxx3/index" rel="nofollow noreferrer">http://www.example.com/xxx1/xxx2/xxx3/index</a>
, вероятно, эквивалентен «URL-адресу каталога» <a href="http://www.example.com/xxx1/xxx2/xxx3/index/" rel="nofollow noreferrer">http://www.example.com/xxx1/xxx2/xxx3/index/</a>
, но относительные ссылки могут ссылаться на разные пути из этих двух URL-адресов, и один может работать, а другой может сломаться.
По этой причине при ссылке на каталог рекомендуется всегда использовать «URL каталога» (с завершающей косой чертой), а не эквивалентный «URL файла» - например, ссылка на <a href="http://www.ietf.org/meetings/" rel="nofollow noreferrer">http://www.ietf.org/meetings/</a>
, а не <a href="http://www.ietf.org/meetings" rel="nofollow noreferrer">http://www.ietf.org/meetings</a>
, даже если обе они будут отображаться на одной странице. Многие веб-серверы фактически настроены на перенаправление клиентов, запрашивающих последние, на первый с помощью ответа перенаправления HTTP 301. Вы можете увидеть это, если введете последнее в адресную строку вашего браузера - после получения этого ответа строка URL изменится на прежнюю.