Должны ли мои URL-адреса быть строчными?

17

Согласно этому блогу («Понимание практики синтаксиса URL, дружественного к SEO»), я должен измениться

http://example.com/Hello-Dolly

к

http://example.com/hello-dolly

Причины приведены:

  • URL, как правило, чувствительны к регистру
  • это упростит любые чувствительные к регистру отчеты SEO и аналитики

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

Однако я использую ASP.NET MVC, и по умолчанию мои URL-адреса имеют следующую структуру ( CamelCase ):

http://www.example.com/Controller/Action/Parameter

http://www.example.com/Categories/List/Bicycles

Я пролистал RFC1738, но не нашел однозначных ответов на это.

Должен ли я изо всех сил заставить каркас изменить все на строчные? Почему Microsoft решила спроектировать свою структуру таким образом, если все говорят мне использовать строчные буквы?

Роуэн Фриман
источник
3
Отличный вопрос и прекрасная презентация вашего запроса сообществу здесь, на webmasters.stackexchange.com! Вы действительно сделали свою «домашнюю работу» по этому вопросу, прежде чем спрашивать!
dvnkiss
Я столкнулся с проблемой, когда прокси-сервер изменил запрошенный URL-адрес на все строчные - и вызвал 404 запросов на сервер Linux, на котором размещена страница в моем подкаталоге ./SO/ (где я поместил примеры stackoverflow). Это случай использования, когда строчные буквы имеют значение (вы можете утверждать, что прокси был плохо закодирован, но это реальная жизнь ...)
Floris

Ответы:

10

Should I go out of my way to force the framework to change everything to lower case?

Нет, это не обязательно. Операционные системы Windows нечувствительны к регистру, включая их серверные ОС и приложения инфраструктуры. Операционные системы Linux / Unix чувствительны к регистру.

Интернет-приложения (например, браузеры) должны нормализовать URL-адреса, как описано в разделе 6 RFC 3986 :

Одной из наиболее распространенных операций над URI является простое сравнение: определение, эквивалентны ли два URI, без использования URI для доступа к их соответствующим ресурсам. Сравнение выполняется каждый раз, когда к кэшу ответов обращаются, браузер проверяет его историю, чтобы окрасить ссылку, или анализатор XML обрабатывает теги в пространстве имен. Обширная нормализация перед сравнением URI часто используется пауками и механизмами индексирования для сокращения пространства поиска или для уменьшения дублирования действий запроса и хранения ответов.

Поскольку вы, несомненно, будете использовать сервер Windows, запрошенные URL-адреса и URI будут возвращены клиентским приложениям просто отлично.


Что касается поисковых систем, как указано в RFC выше, и в вашей ссылке на Википедию по нормализации URL :

Поисковые системы используют нормализацию URL, чтобы придавать важность веб-страницам и уменьшать индексирование дубликатов страниц.

И как источники, как этот отчет на эту тему:

Совсем недавно Google начал лучше понимать, что /page1.html и /Page1.html были всего лишь двумя экземплярами одного и того же контента.


Why did Microsoft choose to design their framework like this if everybody is telling me to use lowercase?

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

дан
источник
1
Отличный ответ, я собирался опубликовать ответ очень похожий, но вы меня опередили! «Почему Microsoft решила спроектировать свою инфраструктуру таким образом, если все говорят мне использовать строчные буквы? ... У них также есть свой собственный способ делать вещи, который заставляет веб-мастеров догадываться». - Люблю это немного. Насколько я помню, у Microsoft были свои собственные средства для того, чтобы «заставить» разработчиков / веб-мастеров подчиняться их жестким правилам!
dvnkiss
4

Я не знаю, что вы должны изменить это, но вы должны быть последовательными.

Я изучил это пару лет назад, и стандарт Google заключался в том, что ДВУ не имеет значения, но после того, как ДВУ имеет значение.

В то время я работал над несуществующим сайтом под названием BusinessForPhotographers.com; по-видимому, это постоянно рассматривается как регистронезависимый.

После .comэто другое дело. Google рассматривает /Great-Articleв отличие от/great-article , даже если ваш сервер направляет их в одно и то же место.

Это может повлиять на вопросы канонизации и дублирования контента. Я думаю, что самый безопасный способ - заставить 301 перенаправить на правильную версию.

Хотя это может показаться бессмысленным думать о такой службе, как YouTube, это /A1B2C3тот же URL, что и/a1b2c3 ?

Не в глазах Google.

адам-ASDF
источник
3

Пути URI чувствительны к регистру (если не указано иное). См. Стандарт URI STD 66, раздел 6.2.2.1. Нормализация случая :

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

Если заглавные буквы в путях HTTP URI будут проблемой для некоторых пользователей, Википедия будет для них неработоспособна. Эти два HTTP URI (различаются только строчными oи прописными буквами O) ведут на разные страницы:

Так что нет, вам не нужно менять свои URI.

Однако, если это возможно (если вы не используете кейс, как это делает Википедия), было бы целесообразно разрешить все варианты кейсов и 301 перенаправлять на канонический вариант.

ОООНР
источник