.htaccess для языка контента - PullRequest
       52

.htaccess для языка контента

2 голосов
/ 25 апреля 2020

Я пытаюсь выяснить, как установить язык контента для сайта, который уже существует. У меня нет доступа к изменению HTML документов.

Веб-сайт настроен на двух языках.

Основной язык в основном домене (xxx.com) - испанский sh. Все документы HTML декларируют язык контента соответствующим образом, используя <html lang="es">.

. Вторым языком является английский sh, расположенный в подкаталоге домена (xxx.com/en/). Язык контента не объявляется ни в одном из HTML документов (просто <html>). Очевидно, разработчик счел это ненужным, но это помечено как проблема при SEO-тестировании.

Я пытаюсь выяснить, как это исправить. Я обнаружил, что объявление языка с использованием DefaultLanguage или AddLanguage может быть сделано в файле .htaccess (который я могу изменить). Но я не могу найти последствия в моих поисках.

Если я добавлю DefaultLanguage en в раздел <IfModule mod_mime.c> .htaccess:

  1. Это решит проблему отсутствующий атрибут языка в подкаталоге / en /?

  2. Будет ли объявление lang = "es" в главном каталоге (Spani sh) переопределять объявление .htacess, так что язык содержания остается верным?

Любой совет приветствуется.

1 Ответ

0 голосов
/ 26 апреля 2020

SEO - это не моя область знаний, и я не знаю, чем будет доволен ваш валидатор, но с чисто программистской стороны упоминаемые вами директивы добавляют HTTP-заголовок Content-Language , адрес вашей проблемы, но не совсем (выделено мной):

Например, если установлено "Content-Language: de-DE" , то это говорит о том, что документ предназначен для носителей немецкого языка (однако, не означает, что документ написан на немецком языке . Например, он может быть написан на английском языке sh как часть языкового курса для говорящих на немецком языке. Если вы хотите указать, на каком языке написан документ, вместо этого используйте атрибут lang.

Кроме того, AddLanguage отображает расширения файлов и языки; это не соответствует вашему варианту использования. Но вы можете попробовать DefaultLanguage и перезапустить свой валидатор. Самый простой способ установить область видимости - сохранить файл .htaccess в подкаталоге en.

Чтобы переписать фактический HTML, вы можете попробовать mod_substitute (еще раз, только в контексте подкаталога en):

# Untested (I have no idea of escaping rules)
Substitute "s/<html>/<html lang=\"en\">/ni"
...