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' );
источник
But wouldn't that result in duplicate content? – henrywright
Вам никогда не нужно беспокоиться о дублирующих ссылках, если ваш сайт правильно использует канонические ссылки, и вы можете получить доступ к одной странице миллионами способов, и никогда не будете подвержены влиянию дублирующегося контента.Ответы:
Две из наиболее широко используемых файловых систем операционной системы для обслуживания веб-контента имеют очень разные настройки чувствительности к регистру URL-адресов по умолчанию. Независимо от того, чувствительны ли ваши URL-адреса, зависит от того, какую функцию вы используете:
На мой взгляд, ни один из дефолтов не идеален:
Идеальным решением было бы показывать страницу только тогда, когда URL правильно написан заглавными буквами. Для неправильного использования заглавных букв пользователь должен быть перенаправлен на 301 предпочтительную заглавную букву. Есть несколько способов, которыми это может быть достигнуто:
источник
/iNdEx.HtMl
или/InDeX.hTml
возвратит оба/index.html
(при условии, что/index.html
это физический файл в файловой системе).Вот позиция Google из заархивированного сеанса живого чата (ссылка сейчас не работает):
Команда IE рекомендует выбрать соглашение о файловом корпусе и строго придерживаться его, поскольку это может улучшить производительность.
источник
RFC 3986 6.2.2.1 определяет URI как нечувствительные к регистру, поэтому не стоит делать их чувствительными к регистру, как это делает wordpress.org.
источник
http://
) - регистр не учитывается, нормализуется в нижний регистр. 2 - Имя хоста (example.com
) - без учета регистра, нормализуется до нижнего регистра. 3. Символы в процентах (%3F
) - без учета регистра, нормализуются в верхнем регистре. Остальная часть URL, как правило, чувствительна к регистру