Ответ 1
Короче Нет.
JavaScript работает полностью на стороне клиента. 301 переадресации должны поступать как ответ от сервера. Это означает, что вы не можете сделать это без поддержки сервера.
Я использую Apache 2.0, и мне просто интересно, можно ли сделать редирект 301 с помощью JavaScript или jQuery.
У меня есть тег <a></a>
с href
в указанное место, и меня просят сделать перенаправление 301 при нажатии на эту ссылку.
Это для SEO, и я пытаюсь найти способ сделать перенаправление 301 на ту же страницу в ссылке без необходимости создания новой страницы или создания формы/отправки.
Короче Нет.
JavaScript работает полностью на стороне клиента. 301 переадресации должны поступать как ответ от сервера. Это означает, что вы не можете сделать это без поддержки сервера.
Я знаю, что это старый вопрос, но ответы на самом деле не затрагивают основной вопрос, который был представлен в вопросе, который является перенаправлением 301 для целей SEO (и ответ сегодня может очень отличаться от того, вопрос изначально был задан и ответил).
Ответ, что нет, вы не можете переадресовать с клиента 301 технически правильно, однако (и что более важно) вам не обязательно нужно. Хотя истинным 301 было бы предпочтительнее, в таких случаях, когда это невозможно (или, например, переход от хэш-сайтов к традиционным URL-адресам), вопрос в том, действительно ли существует жизнеспособная альтернатива, которая достигает цели.
Поисковая земля сделала подробный тест возможностей Google в отношении JavaScript, и это связанная выдержка из этой статьи:
- Переадресация JavaScript
Мы сначала протестировали общие переадресации JavaScript, изменяя, как URL был представлены по-разному. Мы выбрали метод window.location. Было проведено два теста: включенный тест А абсолютный URL-адрес, присвоенный в функции window.location. Тест B используется относительный URL-адрес.
Результат: после перенаправления сразу последовали Google. Из индексации, они были интерпретированы как 301 - конечное состояние URL-адреса заменяли перенаправленные URL-адреса в индексе Googles.
В следующем тесте мы использовали авторитетную страницу и реализовал переадресацию JavaScript на новую страницу на сайте с помощью точно такое же содержание. Исходный URL-адрес, размещенный на первой странице Google для популярных запросов.
Результат: Как и ожидалось, за перенастройкой последовали Google и исходная страница выпала из индекса. Новый URL был проиндексирован и сразу же занял одно и то же место для тех же запросов. Эта удивил нас и, похоже, указывает, что переадресация JavaScript может (при раз) ведут себя точно так же, как постоянные 301 переадресации из рейтинга точка зрения.
В следующий раз ваш клиент хочет реализовать переадресацию JavaScript для их сайт перемещается, ваш ответ может и не быть, "пожалуйста, нет". Это появляется передача сигналов ранжирования в этом отношении. Поддержкой этого вывода является цитата из Руководства Google > :
"Использование JavaScript для перенаправления пользователей может быть законной практикой. Например, если вы перенаправляете пользователей на внутреннюю страницу после их регистрации в, вы можете использовать JavaScript для этого. При изучении JavaScript или другие методы перенаправления для обеспечения того, чтобы ваш сайт придерживался наших рекомендаций, рассмотрите намерение. Имейте в виду, что 301 переадресация лучше всего, когда перемещение вашего сайта, но вы можете использовать перенаправление JavaScript для этого если у вас нет доступа к серверу ваших веб-сайтов".
301 - это код ответа сервера. Вы не сможете создать 301-редирект из jQuery.
Вам нужно будет сделать 301 из PHP.
301 redirects - это постоянные переадресации и являются в основном ответами HTTP-сервера. JavaScript/jQuery - это то, что выполняется на клиенте. Два разных мира.
Вместо этого вы можете поместить href окончательный URL-адрес, если вы не можете сделать это на сервере.
Или, если вы спрашиваете, можете ли вы перенаправить текущую страницу, да, это возможно с переадресацией META или путем изменения window.location.
Если вы используете Apache, вы можете использовать mod_rewrite для переадресации 301.