Как лучше всего перенаправить веб-страницу без использования Javascript?
-
22-08-2019 - |
Вопрос
На моей странице по умолчанию есть скрипт, который перенаправляет пользователей на языковые версии моего веб-сайта в зависимости от языка браузера.Я хочу добавить что-то, что перенаправляет тех пользователей, у которых НЕ включен Javascript.
На данный момент у меня есть следующее:
<noscript>
<META HTTP-EQUIV=REFRESH CONTENT="1; URL=en/index.htm">.
</noscript>
Но я читал, что это не слишком разумно, поскольку некоторые поисковые системы не одобряют это.Как мне это сделать и оставить поисковые системы довольными?
Решение
Вы также можете перенаправить на стороне сервера с кодом состояния HTTP 301.Это лучший способ сделать это для хорошего SEO.Пример написан на C#, но у каждой платформы есть свой метод добавления заголовков к ответу:
Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", "/newfolder/newfilelocation");
Причина использования кода состояния 301 заключается в том, что поисковая система индексирует новую страницу, поскольку она была «Перемещена навсегда», а не 302, которая была «Перемещена временно».
Другие советы
Вам следует использовать файл .htaccess, чтобы определить язык браузера по заголовкам (с помощью регулярного выражения), а затем перенаправить их таким образом.Это совершенно не зависит от конфигурации на стороне клиента, и поисковые системы справятся с этим правильно.Существует масса информации о том, как именно этого добиться.
Это можно сделать с помощью серверного языка, добавив следующий http-заголовок
Location: /en/index
перенаправит пользователя на http://www.example.com/en/index
Вам нужно будет разобрать Accept-Language
HTTP-заголовок.
Почему бы вам не выполнить перенаправление на стороне сервера, ответив кодом состояния HTTP 302.Я не знаю, что у вас на сервере, но все фреймворки это поддерживают.