Чи повинні URL-шляхи залежно від регістру?


11

Наразі URL-адреси мого веб-сайту не залежать від регістру. Наприклад, обидва наступні посилання показують абсолютно ту саму сторінку:

  • http://example.com/about
  • http://example.com/About

Однак, переглянувши веб-сайт wordpress.org, я помітив, що URL-адреси залежать від регістру. Наприклад, друге посилання нижче - це сторінка помилок 404:

  • http://wordpress.org/about
  • http://wordpress.org/About

Мої думки полягають у тому, щоб зробити URL-адреси мого веб-сайту залежно від регістру. Окрім очевидного питання уникнення повторюваного вмісту, які плюси та мінуси у наявності URL-адрес, що відрізняються від регістру?

Оновлення

Google, здається, застосовує політику щодо URL-адрес, що залежать від регістру, на власних URL-адресах. Наприклад, друга посилання нижче - 404:

  • http://google.com/doodles
  • http://google.com/Doodles

Оновлення 2

Дякую за відповіді Я вирішив скористатися порадою, згаданою у прийнятій відповіді, та застосувати 301 переспрямування, де це необхідно. Оскільки я працюю з WordPress, моє рішення щодо коду таке (на випадок, коли хтось зацікавлений):

function force_lowercase_urls() {

    if ( is_admin() )
        return;

    if ( preg_match( '/[A-Z]/', $_SERVER['REQUEST_URI'] ) ) {

        wp_redirect( strtolower( $_SERVER['REQUEST_URI'] ), 301 );
        exit();
    }

}
add_action( 'init', 'force_lowercase_urls' );

1
But wouldn't that result in duplicate content? – henrywrightВам ніколи не потрібно турбуватися про дублікати посилань, якщо ваш сайт правильно використовує канонічні посилання, і ви можете мати одну сторінку, яка має доступ до мільйона способів, і ніколи не впливатиме на дублікат вмісту.
Саймон Хейтер

@bybe Якщо ви маєте доступ до однієї сторінки мільйонами способів, Googlebot не зможе добре сканувати ваш сайт. Отримавши доступ до сторінки кількома способами, швидше за все, це не зашкодить.
Стівен Остерміллер

Відповіді:


6

Дві найпоширеніші файлові системи операційної системи для розміщення веб-вмісту за замовчуванням мають дуже різні налаштування для чутливості регістру URL-адрес. Незалежно від того, залежно від регістра ваші URL-адреси чи ні, швидше за все, це функція, яку ви використовуєте:

  • Microsoft IIS, що працює в ОС Windows - нечутливі до регістру URL-адреси - показує той самий вміст незалежно від великої літери.
  • Сервер Apache HTTPD, що працює на Linux - URL-адреси з урахуванням регістру - дає помилку 404 не знайдено за неправильну написання великої літери.

На мою думку, жоден за замовчуванням не є ідеальним:

  • Показ одного і того ж вмісту, незалежно від використання великих літер, ускладнює сканування вашого веб-сайту. Пошукові системи вважають один і той же вміст у кількох URL-адресах повторюваним.
  • Відображення сторінок помилок щодо неправильної великої літери не є зручним для користувачів. Користувачі зазвичай не пам'ятають про використання великих літер, коли вони вводять текст.

Ідеальним рішенням буде показувати сторінку лише тоді, коли URL-адреса правильно написана з великої літери. Для неправильної великої літери користувач повинен бути перенаправлений на 301 до бажаної великої літери. Є кілька способів, як це можна досягти:


1
Я вважаю, що це артефакт DOS і Windows, який відхиляється від попереднього стандарту чутливості регістру, який ми маємо в середовищах Unix.
Нд

1
Чи Apache чутливий до регістру для запитів, які відображаються у файловій системі, залежить від базової файлової системи, а не самої Apache. Якщо Apache працює у Windows, то запит /iNdEx.HtMlабо /InDeX.hTmlповернеться обоє /index.html(за умови, що /index.htmlце фізичний файл у файловій системі).
MrWhite

1
Насправді це, здавалося б, те саме для IIS .
MrWhite

1
Ну, IIS завжди працює в Windows (AFAIK), тому запити файлової системи завжди будуть нечутливими до регістру. Однак багато сайтів спрямовуватимуть (переписувати) URL-адреси через якийсь фронт-контролер - у цьому випадку запит, ймовірно, не відображається у фізичному файлі файлової системи, і тому URL-адреса, мабуть, відрізняється від регістру (якщо додаток спеціально не робить це випадковим) -нечутливий) - який в основному такий же, як Apache (при запуску в Windows). (?)
MrWhite

2
Я насправді натрапив сюди, вивчаючи нещодавнє / зайняте питання " Чому URL-адреси залежать від регістру? ". Схоже, що фрази на зразок "IIS нечутливі до регістру" (згадується кілька разів у цій іншій нитці) настільки широко поширені, що, як видається, поширена думка, що URL-адреси IIS завжди чутливі до регістру - принаймні, таке враження, яке я створював - яке виявляється, що це зовсім не так.
MrWhite

4

Ось позиція Google від архівованого сеансу чату в прямому ефірі (посилання зараз мертве):

* Чи викликає непослідовність написання великих літер URL-адреси, що повторюють проблеми із вмістом та зменшують рейтинг сторінки? Наприклад, www.site.com/abc vs www.site.com/Abc. На хостах Windows це одна і та сама сторінка, але різні хости на хостах Unix.

JohnMu: Привіт Джон, на основі існуючих стандартів URL-адреси залежать від регістру, так що так, вони вважатимуться окремими URL-адресами. Оскільки вміст у URL-адресах однаковий, ми загалом це визнаємо і зберігаємо лише одну з них. Однак ми радимо спробувати зберегти всі посилання на одну версію URL-адреси. Майте на увазі, що це стосується також файлів robots.txt. *

Команда IE рекомендує підбирати файл із вимогами до корпусу та дотримуватися його суворо, оскільки це може підвищити продуктивність.


-2

RFC 3986 6.2.2.1 визначає URI як нечутливі до регістру, тому не годиться робити їх залежними від регістру, як це робить wordpress.org.


Але це не призведе до повторного вмісту?

Насправді ні, тому що пошукові системи теж повинні працювати не залежно від регістру.

Я припускаю, що зараз питання полягає в тому, як дізнатися, чи пошукові системи розглядають верхній і нижній регістри URL-адрес як рівнозначні? Візьмемо для прикладу Google: Спробуйте google.com/Doodles і google.com/doodles

10
Цей RFC розглядає лише регістр із трьох частин URL-адреси. 1 - Протокол ( http://) - нечутливий до регістру, нормалізується на малі регістри. 2 - Ім'я хоста ( example.com) - нечутливе до регістру, нормалізується на малі регістри. 3. Перцентовані символи ( %3F) - нечутливі до регістру, нормалізуються у верхньому регістрі. Решта URL-адреси, як правило, чутливі до регістру
Стівен Остерміллер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.