Когда следует использовать косую черту в URL? Например - должен ли мой URL выглядеть /about-us/
или как /about-us
?
Я полностью осведомлен о вопросах, связанных с SEO - дублированный контент и каноническая вещь; Я пытаюсь выяснить, какой из них мне следует использовать в контексте правильного обслуживания страниц в одиночку.
Например, мой коллега думает, что косая черта в конце означает, что это «папка» - «каталог», так что это неправильный стиль. Но я думаю, что без косой черты в конце - это тоже не совсем правильно, потому что это выглядит почти как папка, но это не так, и это тоже не обычный файл, а имя файла без расширения.
Есть ли правильный способ узнать, какой использовать?
Ответы:
По моему личному мнению, косые черты используются неправильно.
В основном, формат URL был взят из того же формата файлов и папок UNIX, позже, в системах DOS, и, наконец, адаптирован для Интернета.
Источник: Википедия: Единый идентификатор ресурса
Еще один хороший источник для чтения: Википедия: Схема URI
Источник: Wikipedia Uniform Resource Locator (URL)
Также:
Источник: центральный блог Google WebMaster - урезать или не урезать
В заключение:
Косая черта в конце URL делает адрес «красивым».
URL без косой черты в конце и без расширения выглядит несколько «странно».
Вы никогда не назовете свой CSS-файл (например) http://www.sample.com/stylesheet/, не так ли?
НО я являюсь сторонником лучших веб-практик независимо от среды. Это может быть непонятно и непонятно, как вы сказали об URL без доп.
источник
index.html
(или аналогичным образом с именем файла) , если каталог доступен, так/foo/
это/foo/index.html
без дополнительной путаницы. Кроме того, в прошлом браузеры добавляли/
к имени домена, но они (Firefox, Chrome, Opera) с тех пор изменились, чтобы пропустить/
при доступе к домашней странице.Это не вопрос предпочтения.
/base
и/base/
имеют разную семантику. Во многих случаях разница не важна. Но это важно, когда есть относительные URL.child
относительно/base/
есть/base/child
.child
по отношению к/base
(возможно, на удивление)/child
.источник
Uri.MakeRelativeUri
. Результаты отражают именно то, что вы сказали. Я исправил проблему, добавив косую черту к моей базеUri
.Меня всегда удивляет широкое использование конечных слешей на URL, не относящихся к каталогам (WordPress среди прочих). Это действительно не должно быть спором или-или, потому что ставить косую черту после ресурса семантически неправильно. Сеть была разработана для предоставления адресуемых ресурсов, а эти адреса - URL-адреса - были разработаны для эмуляции иерархии файловой системы в стиле * nix. В этом контексте:
Используя эти рекомендации, неправильно ставить косую черту после ресурса, не являющегося каталогом.
источник
directory
(в противном случае,image.png
inhttp://hostname/directory
указывает наhttp://hostname/image.png
). Я просто говорил, что различие между файлом и каталогом может быть не очень важным с точки зрения пользователя.На самом деле это не вопрос эстетики, а техническая разница. Справочник думает об этом полностью правильно и в значительной степени объясняет все. Давайте решим это:
Вы сейчас в каменном веке или обслуживаете только статичные страницы
У вас есть фиксированная структура каталогов на вашем веб-сервере и только статические файлы, такие как изображения, 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-адрес HTTPScustomer/login/
. В конечном итоге вы получаете тонны ненужных перенаправлений HTTP (= дополнительные запросы), которые замедляют работу пользователя.Скорее всего, у вас есть индекс каталога по умолчанию и здесь:
index.php?controller=dvd
безaction
внутренних загрузокindex.php?controller=dvd&action=list
.Резюме:
Если это заканчивается,
/
это никогда не может быть файлом. Нет предположения сервера.Косая черта или нет - это совершенно разные значения. Существует техническая / ресурсная разница между "косой чертой или без косой черты", и вы должны знать об этом и использовать ее соответствующим образом. Просто потому, что сервер, скорее всего, загружает
/dvd/index.htm
- или загружает правильный сценарий - когда вы говорите/dvd
: он делает это, но не потому, что вы сделали правильный запрос. Который был бы/dvd/
.Пропуск слэша, даже если вы действительно имеете в виду, что урезанная версия дает вам дополнительное наказание за HTTP-запрос. Это всегда плохо (подумайте о задержке мобильной связи) и имеет больший вес, чем «симпатичный URL» - тем более, что сканеры не настолько глупы, как считают SEO или хотят, чтобы вы верили;)
источник
dvd
)?Когда вы создаете свой URL
/about-us/
(с завершающей косой чертой), легко начать с одного файла,index.html
а затем развернуть его и добавить больше файлов (напримерour-CEO-john-doe.jpg
) или даже построить иерархию под ним (например/about-us/company/
,/about-us/products/
и т. Д.) По мере необходимости, без изменение опубликованного URL . Это дает вам большую гибкость.источник
/about-us
или/about-us/
мне все еще нужно изменить опубликованный URL в обоих случаях, если я расширил каталог. новый файл будет/about-us/new-file.html
в обоих случаях !! что мне здесь не хватает?/about-us
и/about-us/company
? С точки зрения обслуживания файлов, Apache и IIS могут справиться с этим просто отлично, поэтому я не согласен./about-us
ты хочешь дать ссылку/about-us/company
, ты должен использоватьhref="https://stackoverflow.com/about-us/company"
илиhref="./company"
(хотя не уверен насчет этого). Если вы/about-us/
, тем не менее, это простоhref="company"
.Другие ответы здесь, кажется, предпочитают опускать косую черту. Есть один случай, когда косая черта поможет с поисковой оптимизацией (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>
раздел каждой веб-страницы.Поисковые системы могут рассмотреть один веб - страницы в виде двух отдельных дублирующих URLS , когда они сталкиваются с его и без слэш, то есть
example.com/about-us/
иexample.com/about-us
.Рекомендуется добавлять на каждую страницу канонический метатег, поскольку вы не можете контролировать, как другие сайты ссылаются на ваши URL-адреса.
Канонический тег выглядит следующим образом :
<link rel="canonical" href="https://example.com/about-us" />
. Использование канонического метатега гарантирует, что поисковые системы будут подсчитывать каждый из ваших URL только один раз, независимо от того, есть ли у других веб-сайтов косая черта, когда они ссылаются на ваш сайт.источник