Зачем нужен слеш в конце URL-адреса?

есть ли разница между этими URL-адресами в отношении наличия косых черт в конце URL-адреса?

https://drchrono.com/about_us
https://drchrono.com/about_us/

веб-фреймворки и веб-серверы (например, Apache, Nginx, Django) обрабатывают эти запросы по-разному?

5 ответов


в URL-адресах Django без косой черты автоматически добавляется косая черта. Это предпочтение разработчиков Django, а не жестко закодированное правило интернета (я думаю, что это на самом деле настройка в Django).


браузер будет относиться к ним по-разному, когда дело доходит до относительных URL-адресов. Страница:

http://server/path

С относительной ссылкой, такой как:

<a href='other'>

решим эту ссылку:

http://server/other

замена path С other. Тогда как если начальный URL был:

http://server/path/

тогда разрешенная ссылка будет:

http://server/path/other

если path каталог, а не файл, большинство веб-серверов автоматически перенаправит от:

http://server/path

в:

http://server/path/

потому что это почти наверняка то, что вы имели в виду.


/ является символом разделения.

из RFC

некоторые схемы URL (такие как ftp, http и файловые схемы) содержат имена, которые можно считать иерархическими; компоненты иерархия разделена на"/".

наличие / в конце указывает, что в url может быть больше материала.


они обрабатываются как разные запросы, хотя они могут совпадать с одним и тем же ресурсом/обработчиком/подпрограммой в конце и обрабатываться одинаково.

поскольку один с / должен быть чем-то похожим на каталог, все относительные ссылки будут внутри / т. е. предыдущего/целевого/чего-то ... в то время как один без будет иметь относительные ссылки на том же уровне, что и предыдущий/что-то.


просто обратите внимание, что поисковые системы рассматривают их как 2 разные страницы. Таким образом, больно ваш seo.