Когда я должен использовать косую черту в своем URL?
Когда следует использовать косую черту в URL? Например - должен ли мой URL выглядеть /about-us/
или как /about-us
?
Я полностью осведомлен о проблемах, связанных с SEO- дублированный контент и каноническая вещь; Я пытаюсь выяснить, какой из них мне следует использовать в контексте правильного обслуживания страниц в одиночку.
Например, мой коллега думает, что косая черта в конце означает, что это "папка" - "каталог", так что это неправильный стиль. Но я думаю, что без косой черты в конце - это тоже не совсем правильно, потому что это выглядит почти как папка, но это не так, и это не обычный файл, а имя файла без расширения.
Есть ли правильный способ узнать, какой использовать?
9 ответов
По моему личному мнению, косые черты используются неправильно.
По сути, формат URL исходил из того же формата файлов и папок UNIX, позже для систем DOS и, наконец, адаптированного для Интернета.
Типичным URL для этой книги в Unix-подобной операционной системе может быть путь к файлу, например file:///home/username/RomeoAndJuliet.pdf, идентифицирующий электронную книгу, сохраненную в файле на локальном жестком диске.
Источник: Википедия: Единый идентификатор ресурса
Еще один хороший источник для чтения: Википедия: Схема URI
Согласно RFC 1738, который определил URL-адреса в 1994 году, когда ресурсы содержат ссылки на другие ресурсы, они могут использовать относительные ссылки, чтобы определить местоположение второго ресурса, как бы сказать, "в том же месте, что и этот, за исключением следующего относительного дорожка". Далее было сказано, что такие относительные URL-адреса зависят от исходного URL-адреса, содержащего иерархическую структуру, на которой основана относительная ссылка, и что схемы URL-адресов ftp, http и file являются примерами некоторых, которые можно считать иерархическими, причем компоненты иерархии разделяются символом "/".
Источник: Википедия Унифицированный указатель ресурса (URL)
Также:
Это вопрос, который мы часто слышим. Вперед к ответам! Исторически сложилось так, что URL-адреса с косой чертой обычно обозначают каталог, а URL-адреса без косой черты - файл:
http://example.com/foo/ (с косой чертой, обычно каталог)
http://example.com/foo (без косой черты, обычно это файл)
Источник: Google WebMaster Central Blog - Косить или не косить
В заключение:
Косая черта в конце URL делает адрес "красивым".
URL без косой черты в конце и без расширения выглядит несколько "странно".
Вы никогда не назовете свой CSS-файл (например) http://www.sample.com/stylesheet/ не так ли?
НО я являюсь сторонником лучших веб-практик независимо от окружающей среды. Это может быть непонятно и непонятно, как вы сказали об URL без доп.
Это не вопрос предпочтения. /base
а также /base/
имеют разную семантику. Во многих случаях разница не важна. Но это важно, когда есть относительные URL.
child
относительно/base/
является/base/child
,child
относительно/base
есть (возможно на удивление)/child
,
Я всегда удивляюсь широкому использованию конечных слешей для не-каталогов URL (WordPress среди других). Это действительно не должно быть спором или-или, потому что ставить косую черту после ресурса семантически неправильно. Сеть была разработана для предоставления адресуемых ресурсов, а эти адреса - URL-адреса - были разработаны для эмуляции иерархии файловой системы в стиле *nix. В этом контексте:
- Косые черты всегда обозначают каталоги, а не файлы.
- Файлы могут иметь любое имя (с расширениями или без), но не могут содержать или заканчиваться косой чертой.
Используя эти рекомендации, неправильно ставить косую черту после ресурса, не являющегося каталогом.
На самом деле это не вопрос эстетики, а техническая разница. Справочник думает об этом полностью правильно и в значительной степени объясняет все. Давайте решим это:
Вы сейчас в каменном веке или обслуживаете только статичные страницы
У вас есть фиксированная структура каталогов на вашем веб-сервере и только статические файлы, такие как изображения, HTML и т. Д. - никаких серверных сценариев или чего-либо еще.
Браузер запрашивает /index.htm
, он существует и доставляется клиенту. Позже у вас есть много, скажем, DVD фильмов, просмотренных и HTML-страница для каждого из них в /dvd/
каталог. Сейчас кто-то просит /dvd/adams_apples.htm
и он доставлен, потому что он там.
В какой-то день кто-то просто просит /dvd/
- который является каталогом, а сервер пытается выяснить, что доставить. Помимо ограничений доступа и так далее, есть две возможности: показать пользователю содержимое каталога (держу пари, что вы уже где-то видели это) или показать файл по умолчанию (в Apache это: DirectoryIndex: sets the file that Apache will serve if a directory is requested.
)
Пока все хорошо, это ожидаемый случай. Это уже показывает разницу в обработке, поэтому давайте разберемся с этим:
В 5:34 вы допустили ошибку при загрузке файлов
(Что, кстати, вполне понятно.) Итак, вы сделали что-то совершенно не так и вместо загрузки /dvd/the_big_lebowski.htm
вы загрузили этот файл как dvd
(без продления) в /
,
Кто-то добавил в закладки /dvd/
список каталогов (конечно, вы не хотите создавать и всегда обновлять эту изящную index.htm
) и посещает ваш сайт. Каталог контента доставлен - все нормально.
Кто-то слышал о вашем списке и печатает /dvd
, И теперь это прикручено. Вместо вашего каталога DVD-дисков сервер находит файл с таким именем и доставляет ваш файл Big Lebowski.
Итак, вы удаляете этот файл и говорите парню перезагрузить страницу. Ваш сервер ищет /dvd
файл, но он ушел. После этого большинство серверов заметят, что существует каталог с таким именем, и сообщат клиенту, что он действительно ищет что-то другое. Ответ, скорее всего, будет:
Status Code:301 Moved Permanently
с Location: http://[...]/dvd/
Таким образом, полностью игнорируя то, что вы думаете о каталогах или файлах, сервер может обрабатывать только такие вещи и - если не указано иное - решает для вас значение "косая черта или нет".
Наконец, после получения этого ответа, клиент загружает /dvd/
и все хорошо.
Это нормально? Нет.
"Просто отлично" не достаточно хорошо для вас
У вас есть динамическая страница, где все передается /index.php
и обрабатывается. До сих пор все работало довольно хорошо, но все это начинает ощущаться медленнее, и вы начинаете расследование.
Вскоре вы заметите, что /dvd/list
делает то же самое: перенаправление на /dvd/list/
который затем внутренне переводится на index.php?controller=dvd&action=list
, Еще один запрос - но еще хуже! customer/login
перенаправляет на customer/login/
который, в свою очередь, перенаправляет на URL-адрес HTTPS customer/login/
, В конечном итоге вы получаете тонны ненужных перенаправлений HTTP (= дополнительные запросы), которые замедляют работу пользователя.
Скорее всего, у вас есть индекс каталога по умолчанию и здесь: index.php?controller=dvd
без action
просто внутренне загружает index.php?controller=dvd&action=list
,
Резюме:
Если это заканчивается
/
это никогда не может быть файлом. Нет предположения сервера.Косая черта или нет - это совершенно разные значения. Существует техническая / ресурсная разница между "косой чертой или без косой черты", и вы должны знать об этом и использовать ее соответствующим образом. Просто потому, что сервер скорее всего загружается
/dvd/index.htm
- или загружает правильный сценарий - когда вы говорите/dvd
Он делает это, но не потому, что вы сделали правильный запрос. Который был бы/dvd/
,Пропуск слэша, даже если вы действительно имеете в виду, что урезанная версия дает вам дополнительное наказание за HTTP-запрос Что всегда плохо (подумайте о задержке мобильной связи) и имеет больший вес, чем "красивый URL" - тем более, что сканеры не так глупы, как считают SEO-специалисты или хотят, чтобы вы верили;)
Когда вы делаете свой URL /about-us/
(с косой чертой), легко начать с одного файла index.html
а затем позже разверните его и добавьте больше файлов (например, our-CEO-john-doe.jpg
) или даже построить иерархию под ним (например, /about-us/company/
, /about-us/products/
и т. д.) по мере необходимости, без изменения опубликованного URL. Это дает вам большую гибкость.
Другие ответы здесь, кажется, предпочитают опускать косую черту. Есть один случай, когда косая черта поможет с поисковой оптимизацией (SEO). Это тот случай, когда ваш документ имеет расширение файла, которое не .html
, Это становится проблемой для сайтов, которые являются рейтинговыми сайтами. Они могут выбирать между этими двумя URL-адресами:
http://mysite.example.com/rated.example.com
http://mysite.example.com/rated.example.com/
В таком случае я бы выбрал тот, который заканчивается косой чертой. Это потому что .com
расширение является расширением для исполняемых командных файлов Windows. Поисковым системам и средствам проверки на вирусы часто не нравятся URL-адреса, которые могут содержать вредоносные программы, распространяемые через такие механизмы. Конечная косая черта, кажется, смягчает любые проблемы, позволяя странице ранжироваться в поисковых системах и проходить проверку на вирусы.
Если ваши URL не имеют .
в части файла я бы порекомендовал опустить косую черту для простоты.
Кто сказал, что имени файла нужно расширение?? взгляните на машину *nix когда-нибудь...
Я согласен с твоим другом, без косой черты.
С точки зрения SEO, выбор того, включать ли косую черту в конце URL, не имеет значения. В наши дни в Интернете можно увидеть примеры обоих. Сайт в любом случае не будет оштрафован, и этот выбор не повлияет на рейтинг вашего сайта в поисковых системах или другие соображения SEO.
Просто выберите предпочитаемое соглашение об именовании URL и включите канонический метатег в <head>
раздел каждой веб-страницы.
Поисковые системы могут рассматривать одну веб-страницу как два отдельных дублирующих URL, когда они сталкиваются с ней и без косой черты, т.е. example.com/about-us/
а также example.com/about-us
,
Рекомендуется добавлять на каждую страницу канонический метатег, поскольку вы не можете контролировать, как другие сайты ссылаются на ваши URL-адреса.
Канонический тег выглядит так: <link rel="canonical" href="https://example.com/about-us" />
, Использование канонического метатега гарантирует, что поисковые системы будут подсчитывать каждый из ваших URL только один раз, независимо от того, есть ли у других веб-сайтов косая черта, когда они ссылаются на ваш сайт.
Косая черта в конце не имеет значения для вашего корневого домена или субдомена. Google считает их эквивалентными.
Но конечная косая черта имеет значение для всего остального, потому что Google видит две версии (одну с косой чертой и одну без нее) как разные URL-адреса. Обычно косая черта (/) в конце URL-адреса означает, что URL-адрес является папкой или каталогом.
URL-адрес без завершающей косой черты в конце означал, что URL-адрес был файлом.