Чи повинні мої 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
Чудове запитання та чудове представлення вашого запиту до спільноти тут на веб-майстрах.stackexchange.com! Ви дійсно зробили свої «домашні завдання» з цього питання також і перед тим, як запитати!
dvnkiss

Я зіткнувся з проблемою, коли проксі-сервер змінив запитувану URL-адресу на всі малі регістри - і викликав 404 запитів на сервер Linux, який розміщував сторінку в моєму підкаталозі ./SO/ (куди я розміщував приклади stackoverflow). Це випадок використання, коли малі літери мають значення (можна стверджувати, що проксі був погано закодований, але це справжнє життя ...)
Флоріс,

Відповіді:


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 був той випадок, перш ніж TLD не має значення, а після TLD.

У той час я працював над неіснуючим сайтом під назвою BusinessForPhotographers.com; Мабуть, це послідовно трактується як нечутливий до випадків.

Після цього .com- інша справа. Google вважає /Great-Articleвідмінними від даних /great-article, навіть якщо сервер спрямовує їх до того самого місця.

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

Хоча це може здатися безглуздим думкою про такий сервіс, як YouTube, це /A1B2C3та сама URL-адреса, що і /a1b2c3?

Не в очах Google.


3

Шляхи URI залежать від регістру (якщо інше не визначено). Див. Стандарт URI STD 66, розділ 6.2.2.1. Нормалізація випадку :

Інші компоненти спільного синтаксису вважаються чутливими до регістру, якщо спеціально не визначено схемою іншого

Якщо великі літери в протоколах URI HTTP будуть проблемою для деяких користувачів, Вікіпедія для них буде порушена. Ці два URI-адреси HTTP (відрізняються лише малими oта великими літерами O) ведуть на різні сторінки:

Так що ні, вам не потрібно змінювати URI.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.