Код статуса http 301 moved permanently как исправить

Ошибка 301 moved permanently, что это? Результат - перенаправление на другой ресурс. Редирект 301 и файл htaccess. Правильная настройка 301 редиректа сайта.

Здравствуйте, уважаемые друзья и гости блога! Сегодня пойдет речь о такой странной вещи на сайте, как ошибка 301 Moved Permanently (переехал навсегда) или по другому редирект 301.

Думаю. что все с таким сталкивались, а некоторые даже использовали данную “ошибку 301” на своих сайтах. Но не все знают для чего эта ошибка 301 или иначе редирект 301 нужна на сайте? Для чего он, 301 редирект, используется?!

Вот сейчас мы с вами и займемся разбором этого вопроса во всех его подробностях и нюансах …

Ошибка 301 или редирект 301 что это?

Как Вы уже наверное догадались по переводу слов “moved permanently” – это дословно, что сайт или отдельная его страница “переехал навсегда” по адресу на который Вас перекинул ваш браузер. Тут надеюсь все понятно и ясно без лишних пояснений!

Но возникает вопрос. Для чего это сделано вебмастером этого сайта? Почему он поставил редирект 301 и у нас с вами выскакивает иногда 301 ошибка? А все просто! Ошибка 301 появляется, когда сервер перебрасывает нас с уже не работающего сайта на страницу сделанную специально для перенаправления пользователя на рабочий сайт, но просто с некоторой задержкой или вообще на этой странице нужно самостоятельно перейти по ссылке. Вот это в двух словах об ошибке 301.

Теперь самый важный момент, зачем же все таки нужен редирект 301 на сайте …

Редирект 301 и для чего он нужен?

Есть несколько причин у вебмастера, чтобы использовать редирект 301. Вот они:

  • Причина первая: Склейка домена с www и без www. При этом все seo показатели сайта и его ссылочный вес будут совмещены и не будут отличаться друг от друга.
  • Причина вторая: Если вдруг пришлось сменить домен для сайта. Тогда применяется редирект 301 и он как раз перенаправляет посетителя сайта и поисковые роботы на рабочий домен сайта. Это также позволит вам сохранить все seo показатели вашего переехавшего сайта, как тИЦ, PR, так и своих посетителей.
  • Причина третья: Использование редиректа 301 при переносе отдельной страницы сайта на другой ресурс. Бывают и такие случаи, когда это нужно сделать.
  • Причина четвертая: Например у Вас есть сайт, где высокий тИЦ и PR и много посетителей. И еще есть другой сайт, который нужно немного пропиарить и прибавить к нему посещения. Тогда Вы просто на просто перенаправляете при помощи того же редирект 301, с одной страницы высоко посещаемого сайта на страницу более низко посещаемого сайта и тем самым выигрываете, добавив ему веса ссылочной массы и соответственно посещений.

Вот основные причины для использования редирект 301 или ошибка 301 Moved Permanently.

Теперь давайте узнаем, как правильно использовать редирект 301 на своем сайте и как настроить его через файл htaccess …

301 редирект и файл htaccess – как правильно настроить?

Как я вам уже говорил выше – 301 редирект это переадресация посетителя и поискового робота на сайт или отдельно взятую страницу сайта на URL адрес отличный от первоначально запрошенного в браузере.

Для чего это нужно мы с вами также уже разобрали. Но как же это сделать правильно на нашем сайте используя файл htaccess? Сейчас я вам все подробно объясню и приведу примеры внесения изменений в файл htaccess для вашего сайта!

  • Перенаправление домена с www на без-www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

или вот более понятный синтаксис:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
  •  301 редирект запросов без-www на домен с www префиксом
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Альтернативный вариант:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
  •  301 редирект старого домена на новый в фале htaccess
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
  •  Если вам нужно, чтобы вместо rewrite.htm загружался файл rewrite.html, добавьте в файл htaccess вот это:
RewriteEngine   on
RewriteBase     /
RewriteRule     ^rewrite.htm$  rewrite.html [R=permanent]
  •  Чтобы заменить все .htm файлы на .html внесите в файл htaccess:
RewriteEngine  on
RewriteBase     /
RewriteRule     ^(.*).htm$  $1.html [R=permanent]
  •  Варианты, когда не нужно использовать 301 редирект на вашем сайте:
  • Если реализация 301 редиректа невозможна или она займет неоправданно много времени.
  • Если контент вашего сайта дублируется на двух или нескольких страницах, но эти страницы должны быть доступны в поиске пользователю ввиду некоторых отличий (на пример, выбор какого-то товара).
  • Если одна страница имеет несколько URL адресов (сортировка каталога товаров по различным категориям или критериям).
  • Для кросс-доменов. Это, когда контент сайта на двух URL адресах дублируется, но он должен быть доступен на каждом из двух или нескольких доменах.

Этот материал посвящен выходу 301-ой статьи на моем блоге!

Может вам интересно узнать, что такое ошибка 503 и как ее устранить?

На этом пока все. Всем удачи и благополучия!

How to Fix 301 Moved Permanently Error?

Before we study whole about the 301 Moved Permanently Error, let’s starts a small discussion upon the redirects.

Are you not familiar with the redirects? Do you ever feel like how to create a redirect in WordPress, why do you need, and when you should use redirects?

The 3xx HTTP Status Code Series

The 3xx HTTP Status Code series indicates that the client must take additional action to complete the request and access the desired resource. Mostly these status codes are used in URL redirection. The 301 redirects are considered best for upgrading users from HTTP to HTTPS.

What is a Redirect in WordPress?

A redirect is a way to send a quick message to your readers to tell them that the page they want to visit has moved, so their browser can automatically point them to the new page of your choice. There are the different type of redirects available, and some of them are 301, 302, and 307 redirects.

What is 301 Moved Permanently?

301 status code indicates that the URL of the requested resources has changed and a new URL is assigned, in the response. In short, it tells that the URL has Moved Permanently and it will pass the 90% of the Search Engine Link Juice to the new URL.

Where is the problem?

The problem is on the Server Side. As I told you, the 3xx series codes are considered to be redirection messages. Such status codes are generated in response when there is an additional action is required to complete the request on the active web server.

The 301 Moved Permanently code shows an issue on the actual web server hosting your website. Most of the web browsers are automatically detect the 301 Moved Permanently response code and process the redirection action automatically.

Let’s have a small example to understand how it occurs.

Suppose you are accessing a URL like http//:tech-banker.com, but the web server is configured to force redirection to a secure version using https. It informs the browser regarding redirecting the request from http://tech-banker.com to the secured https://tech-banker.com.

In most cases, the browser will automatically detect the 301 Moved Permanently response code after that it will read the new location URL and redirect the request to that new location.
Thus, if you attempt to go through http://tech-banker.com right now, you’ll automatically be redirected to the HTTPS version of the site: https://tech-banker.com.

Start With a Backup

Before moving, it is suggested to take a complete backup of your website. You can use any WordPress backup plugin to backup your site. You may use Backup Bank to backup your site. It is freely available on wordpress.org. With the help of Backup Bank, you can take backup manually even you can also schedule your site back up.

Diagnoses for 301 Moved Permanently Response Code

The 301 Moved Permanently indicates that the URL or resources you are trying to access are not valid and must be redirected to a new URL.

Here are some steps that may help you in troubleshooting this error.

Method 1) Check the Server Configuration Files

Apache or Nginx are the two most popular web servers. Your site is probably running on one of these web servers. Thus, the first step you can take to determine the cause of 301 response code is to check the configuration files for your web server.

If you are on Apache Web Server then, Look for a .htaccess file within the root directory of your website file system. You can find the file at /home//public_html/.htaccess . If you found the .htaccess file, open it in a text editor and look for RewriteXXX directives, which are part of the mod_rewrite module in Apache.

These directives define a text pattern that will match against the requested URL.

RewriteCond directives are used to perform the actual redirection of the request to the appropriate URL. If you find any strange RewriteCond or RewriteRule directives in the .htaccess file, try temporarily commenting them using the # character prefix and restarting your web server to see if the issue resolved or not.

You can also try deleting the .htaccess file and recreate it. It is quite easy to recreate a .htaccess file. Here are the steps:

1. Login to your WordPress admin and navigate to the Settings Menu.

2. Move to the Permalinks Menu and click on the Save Changes button.

Not Working Permalinks Option In Settings

This way, you have a new bug free .htaccess file. On the other hand, if your server is running on nginx then, you’ll need to look for an entirely different configuration file.

nginx.conf is the file and is located in: /usr/local/nginx/conf, /etc/nginx or /usr/local/etc/nginx

Once found, open nginx.conf in a text editor and look for the rewrite directives. Check for any abnormality and comment them out before restarting the server to see if the issue was fixed.

Method 2) Check the Logs

Logs provide the details about the health and status of all the server. They tell about the nature and the type of the error. They tell, on which file it is appearing, line number where it is appearing. By so, it becomes easy to detect and correct the error.

Method 3) Custom Code or Script File

It may be that your custom code is generating the error. Try to diagnose the issue by manually debugging your custom code. Remove the code snippet or the file and check the tab with the error.

Why do you need to use a 301 Moved Permanently?

Let’s take a look at why it is necessary to understand the use of 301 redirects. The reason to use 301 HTTP Status Code is you want your user to redirect to a new page when a page or post on your site has moved permanently.

Below are some points that will show you when you need to use a 301 redirect in WordPress.

1. When you plan to delete a post or page.

2. When you plan to change the permalinks of your post or page.

Now, the answer to why you need to create a 301 redirect is, it will not only save your website from showing the 404 Not Found message on your screen but also save it from degrading the site’s search engine ranking.

The 301 Moved Permanently error, tells search engines that the page you are trying to access has permanently moved to a new location.

Conclusion

It’s recommended to set up 301 redirects in WordPress when you change the URL (permalinks) of your posts and pages or move your website from one domain to another. The 301 redirects are considered best for upgrading users from HTTP to HTTPS.

WordPress Plugins


  • Backup Bank


  • Captcha Bank


  • Captcha Booster


  • Clean Up Booster


  • Clean Up Optimizer


  • Coming Soon Booster


  • Contact Bank


  • Facebook Like Box


  • Gallery Bank


  • Gallery Master


  • Google Maps Bank


  • Limit Attempts Booster


  • WP Mail Bank


  • WP Mail Booster

How to Fix 301 Moved Permanently Error? 1

С 301-м редиректом (переадресацией) вы обязательно столкнетесь при склейке зеркал сайта с префиксом WWW и без него, в случае переезда сайта на новый домен, с HTTP на HTTPS, переноса страницы в другой раздел сайта и изменения ее адреса. Во всех этих случаях важно сохранить позиции и трафик, перенаправляя его на новые страницы. Как это сделать? Читайте нашу инструкцию.

Код состояния HTTP 301 (Moved Permanently или 301 редирект) — это стандартный код ответа сервера, который сообщает, что запрашиваемый ресурс перемещен и получил новый URL.

Для SEO 301 редирект важен, поскольку он позволяет исключить из поисковой выдачи старый URL и заменить его новым без потери страницей веса и, соответственно, ухудшения ее позиций.

Настроить 301-й редирект можно разными способами:

  • с помощью HTML и PHP;
  • средствами специальных плагинов для CMS,
  • при помощи скриптов;
  • с помощью файлов .htaccess для сервера Apache или web.config — для IIS.

Последний вариант — самый надежный и простой, поэтому о нем и расскажем подробнее.

Настройка 301 редиректа в .htaccess

Редирект с одного домена на другой

Постраничные редиректы

Склейка зеркал сайта

Борьба с дублями на сайте

Настройка 301 редиректа в web.config

Альтернативные способы настройки переадресации

Как настроить редирект, если нет опыта веб-программирования

Популярные плагины для WordPress

Настройка 301 редиректа в .htaccess

.htaccess — это файл дополнительной конфигурации веб-сервера Apache, с помощью которого можно задавать настройки на уровне отдельных каталогов. В отличие от главного файла конфигурации httpd.conf, директивы в .htaccess распространяются только на тот каталог, где он размещен, и на дочерние каталоги.

Если в корневой папке вашего сайта нет файла .htaccess, его нужно создать и загрузить с помощью FTP-клиента. Теперь можно приступать к настройке редиректов.

Редирект с одного домена на другой

Когда вам требуется сделать редирект с текущего домена на другой (например, при переезде сайта), можно использовать директивы модуля mod_alias. Пропишите в .htaccess следующую директиву (вместо newsite.ru укажите ваш новый домен):

Redirect permanent / https://newsite.ru/

или

Redirect 301 / https://newsite.ru/

301 редирект — не единственный возможный. Есть 302, 307 и другие редиректы. О том, в каких ситуациях их использовать и в чем их польза для SEO, рассказано в этой статье.

Постраничные редиректы

Приведем еще примеры настройки переадресации 301.

  • Редирект со страницы page1.html на страницу page2.html:
Redirect 301 /page1.html https://site.ru/page2.html
  • Редирект с главной страницы сайта на страницу каталога /cat:
Redirect 301 / https://site.ru/cat
  • Редирект с каталога /cat на главную:
Redirect 301 /cat https://site.ru

Склейка зеркал сайта

Редирект часто используют для склеивания зеркал сайта — так называются варианты сайта с одинаковым контентом, доступные по разным адресам. Например, site.com и www.site.com. Поисковики не любят зеркала и считают их дублями, поэтому рекомендуется выбрать один основной адрес (главное зеркало), а с остальных настроить переадресацию на него.
Для склейки зеркал применяется модуль mod_rewrite.

Например, если вы хотите, чтобы шел редирект с домена с www на домен без www, то пропишите такие строки (где yoursite.ru — ваш домен):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.yoursite.ru$ [NC]
RewriteRule ^(.*)$ http://yoursite.ru/$1 [R=301,L]

И наоборот — редирект с домена без www на домен с www:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^ yoursite.ru
RewriteRule (.*) http://www.yoursite.ru/$1 [R=301,L]

Редирект всех страниц сайта при переезде с http на https:

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Если не сработает, можно попробовать такой вариант:

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Борьба с дублями на сайте

Также 301 редирект используется в борьбе с дублями страниц. Приведем несколько примеров.

Для поисковых систем URL https://www.yoursite.ru/ и https://www.yoursite.ru являются разными. Поэтому надо решить, какой тип использовать: со слешем в конце или без него.

Для того чтобы убрать слеш в конце URL, пропишите в файле .htaccess правило:

RewriteEngine On
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

Добавить слеш можно таким образом:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Для того чтобы заменить все .htm файлы .html файлами, пропишите следующие строки:

RewriteEngine on
RewriteBase /
RewriteRule ^(.*).htm$ $1.html [R=permanent]

Если вы прописываете несколько директив, то строка «RewriteEngine on» указывается один раз — с ее помощью включается модуль mod_rewrite.

Если вы создаете файл .htaccess с нуля, то все команды указываются внутри таких строк:

<IfModule mod_rewrite.c>
…
</IfModule>

Например, так будет выглядеть файл .htaccess с двумя редиректами: с www на без www и со страниц без слеша на страницы со слешем в конце:

Как настроить 301-й редирект

Это лишь несколько примеров дублирования страниц. Вот подробная инструкция по поиску и устранению дублей на сайте — в том числе с помощью 301 редиректа.

Настройка 301 редиректа в web.config

Вариант редиректа с помощью .htaccess работает только для Apache. Для веб-сервера IIS настраивать переадресацию нужно в файле web.config. Это XML-файл, в котором хранятся основные настройки сервера IIS. Его роль аналогична роли файла .htaccess для сервера Apache.

Чтобы настроить 301-й редирект с одной страницы (yoursite.ru/page.html) на другую (yoursite.ru/page2.html), нужно прописать в файле web.config следующий фрагмент кода:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="test.html">
<system.webServer>
<httpRedirect enabled="true" destination="http://yoursite.ru/page2.html" httpResponseStatus="Permanent" />
</system.webServer>
</location>
</configuration>

301-й редирект с домена с www на домен без www настроить можно таким образом:

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^www.(.+)$" />
</conditions>
<action type="Redirect" url="http://{C:1}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Альтернативные способы настройки переадресации

Если по какой-то причине вы не можете создавать и редактировать web.config или .htaccess (например, в силу ограничений на хостинге) или вам нужна определенная обработка полученных данных, их модификация или проверка, по результатам которой реализуется перенаправление, вы можете настроить редирект с помощью PHP.

Синтаксис следующий:

<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://newsite.ru/');
?>

В этом случае происходит принудительная передача кода HTTP-ответа 301, и пользователь перенаправляется на страницу https://newsite.ru/.

Если у вас небольшой сайт с парой страниц, то редирект можно сделать с помощью HTML:

<meta http-equiv="refresh" content="0; url=https://newsite.ru">

Изменяя цифру 0, вы задаете количество секунд до переадресации. В этом случае редирект реализуется не на стороне сервера, а на стороне клиента (не передается заголовок 301).

Также редирект можно сделать с помощью JavaScript:

<script type="text/javascript">
window.location.replace("newsite.ru");
</script>

В этом случае также не передается заголовок 301. И если у пользователя в браузере отключена поддержка JavaScript, то редирект не сработает.

Вариантов редиректов бесчисленное множество. Упростить работу можно с помощью генераторов редиректов. Это онлайн-сервисы, которые выдают готовые коды, — вам нужно лишь указать, откуда и куда перенаправить пользователя. Вот некоторые из этих сервисов: www.webconfs.com, www.rapidtables.com, www.htaccessredirect.net.

Как настроить редирект, если нет опыта веб-программирования

Настройка редиректа — сложная техническая задача, для выполнения которой не обойтись без профильных знаний. Если вы не владеете навыками разработки и программирования, и у вас под рукой нет штатного программиста, можно воспользоваться поддержкой хостинг-провайдеров. Многие из них предлагают услугу web-форвардинга (или «переадресация домена», «URL-форвардинг» и т. п.). Она позволяет настроить переадресацию с одного URL на другой. При этом используется 301 редирект.

Еще один вариант — настройка редиректов с помощью встроенных инструментов CMS или конструкторов сайтов (такие есть, например, в Joomla!, Wix и Тильде) или специальных плагинов.

Популярные плагины для WordPress

Настроить редиректы для сайта на WordPress можно с помощью таких плагинов:

  • Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбор статистики переадресаций, отслеживание ошибок 404, поддержка регулярных выражений.
  • Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения и не несет серьезной угрозы для производительности сайта.
  • Quick Page/Post Redirect Plugin — еще один простой в использовании плагин. Один из недостатков — отсутствие поддержки регулярных выражений. К ссылкам можно добавлять атрибут “nofollow”.

Не уверены, что сможете правильно настроить редиректы своими руками? Лучше не рисковать — в модуле SEO системы PromoPult за вас все сделают профессиональные вебмастера. Все работы выполняются по чек-листу и в срок. Есть возможность рассрочки платежа.

Подводим итоги

Лучший способ настроить 301 редирект — с помощью .htaccess. Но он подходит только для веб-серверов Apache. Для IIS придется настраивать web.config. Если же нужно не просто сделать редирект, а учесть определенные условия, то используйте PHP, но в этом случае без помощи программиста не обойтись.

Есть и другие способы (в частности, с помощью HTML и JavaScript), но это не 301 редирект, а просто перенаправление без передачи веса, что бесполезно с точки зрения SEO.

Также можно использовать плагины для популярных CMS или подключить услугу web-форвардинга, если ее оказывает ваш хостинг-провайдер.

Стоит понимать, что не всегда есть смысл использовать 301-й редирект. В некоторых случаях лучше подойдет, например, атрибут rel=»canonical».

Какой бы вариант вы ни выбрали, главное, чтобы он правильно работал. Проверить корректность редиректов на вашем сайте и поставить задачи на внедрение переадресации можно в рамках модуля «Поисковое продвижение» системы PromoPult.

Февралька

На сайте с 07.01.2010

Offline

68

4 сентября 2015, 22:50

15624

:mad: Замучилась с решение проблемы на сайте

Домен dam-sovet.ru куплен был год назад. Уже позже прознала, что это была какая-то линкопомойка. Не могу сказать, связано это с появлением данного редиректа, или это просто бан поисковых систем (яндексоидам писала, но те не реагируют никак).

Суть проблемы: сайт вообще никак не индексируется роботами. Его нет ни в одной выдаче, хотя в мастерах гугла и яндекса все зарегано. И не только там.

При проверке в яндексе на странице «Проверка ответа сервера» выскакивает Код статуса HTTP 301 Moved Permanently

и это: Заголовки:

Server: nginx/1.8.0

Date: Fri, 04 Sep 2015 21:59:31 GMT

Content-Type: text/html; charset=UTF-8

Content-Length: 0

Connection: keep-alive

X-Powered-By: PHP/5.5.17

X-Pingback: http://www.dam-sovet.ru/xmlrpc.php

Может, подскажите, что можно сделать?

Спасибо

Копирайтинг: от 150 руб. Рерайт: от 85 руб. за 1000 б/п. Авторские статьи на любые темы пишу по цене от 400 руб. Seo-копирайтинг: от 220 руб. за 1000. LSI. Скайп fevvralka

R

На сайте с 31.08.2010

Offline

78

5 сентября 2015, 00:32

#1

если вы на сайт заходите и у вас код ответа 200 ок, а для поисковиков другой код ответа очевидно что где-то в скрипте который формирует веб страницу стоит условие что если это поисковик то редиректим, если нет то открываем страницу… больше похоже на это. Надо искать где это прописано или что-то подобное + ещё можно заглянуть в файл .htaccess в корне сайта там может что интересное найдете. Но ИМХО для всего этого нужно быть программистом чтоб решить эту проблему.

U

На сайте с 09.04.2015

Offline

28

5 сентября 2015, 01:56

#2

K5

На сайте с 21.07.2010

Offline

209

5 сентября 2015, 06:12

#3

на сервере настроен редирект

c 
dam-sovet.ru
на
www.dam-sovet.ru

— это правильная настройка, ее делают чтобы исключить дубли адресов — ничего убирать не надо

Февралька

На сайте с 07.01.2010

Offline

68

5 сентября 2015, 12:29

#4

Сама определенно не полезу в эти дебри.

Есть кто-нибудь готовый помочь за вознаграждение?

Rokkkin, проблема заключается в том, что 301-первый прописывать было некому. Сайт на банальном ворд-пресс шаблоне. Более того, шаблоны менялись. А сама база вордпресс для всех сайтов одна. На других такой проблемой даже не пахнет!

U

На сайте с 09.04.2015

Offline

28

5 сентября 2015, 13:12

#5

Февралька, у Вас все правильно настроено. Просто когда Вы проверяете ответ сервера, пишете dam-sovet.ru, отсюда и 301. Напишете с www — получите 200

WebAlt

На сайте с 02.12.2007

Offline

240

5 сентября 2015, 14:08

#6

ПРОМОКОД НА СКИДКУ 25% (64821976): аренда VPS/VDS — firstvds.ru | выделенные серверы — firstdedic.ru | облачный сервер — ispserver.ru | Локация: РФ, Москва, ПУ: ISPmanager 6.

SocFishing

На сайте с 26.09.2013

Offline

118

5 сентября 2015, 23:02

#7

Как эти редиректы могут помешать индексации? Сайт не индексируется и это главная проблема.

Февралька

На сайте с 07.01.2010

Offline

68

6 сентября 2015, 16:40

#8

Да, спасибо за консультацию.

Действительно, это не при чем.

Я сочла, что проблема как раз в этом. Буду искать теперь проблемы в индексации.

———- Добавлено 06.09.2015 в 19:45 ———-

Февралька:
Да, спасибо за консультацию.

Действительно, это не при чем.

Я сочла, что проблема как раз в этом.

Только что отписались Яндексоиды. Сказали, что санкции снимают с домена. Сайт появится в поиске через 2 недели.

Всем большое человеческое спасибо)

← Назад

Настройка 301 редиректа в файле .htaccess, что такое 301 Permanent Redirect и код состояния HTTP 301, и другое.

Команда NewPoint продолжает просвещать своих дорогих клиентов и подписчиков, и сегодня мы хотели бы поднять важную и сложную тему редиректа. Мы могли бы дать Вам готовый код, но толка от этого было бы мало. Лучше мы разложим все по полочкам, раскроем все нюансы, чтобы Вы потом смогли ориентироваться в техническом смысле предложенного кода и выбирать подходящий вариант, исходя из условий. 

Итак, если Вам надоело оставаться в неведении, приготовьтесь узнавать много нового. 

Что такое 301 Permanent Redirect и код состояния HTTP 301?

Редирект — это перенаправление с одной страницы на другую. Переходя по ссылке на страницу с редиректом, пользователь может даже не узнать, что его отправили на другую площадку. Делается это для того, чтобы актуализировать ссылку: подменить ресурс более актуальным. Например, заменить http-страницу на ее https-версию. 

Редирект может происходить как на стороне сервера, так и через браузер. С сервером работают крайне редко, так как данный метод может замедлять загрузку страниц. А вот браузерный редирект считается более предпочтительным вариантом. 

Permanent Redirect 301 или код состояния 301 — одна из популярных разновидностей редиректа. Она позволяет настроить сервер так, чтобы в ответ на запрос браузера он выдавал сообщение о том, что сайт «переехал», причём на постоянной основе. Браузер понимает, что страница больше не доступна по текущему адресу и совершает переход по новому. При этом старый URL становится недействительным, а его вес перемещается на новый адрес. 

Разница между 301 и 302 редиректом

Класс редиректов 3хх достаточно широкий, но наиболее известны из них 301 и 302. Их очень легко спутать, однако для поисковых роботов эти коды имеют принципиальную разницу. 

301 Moved Permanently — постоянный редирект. Эта комбинация сигнализирует роботу о том, что старый ресурс окончательно перемещен на новую площадку, а значит старый домен можно удалить из базы. Используется данный редирект для «переезда» на новый домен, для подключения новой CMS и для склейки идентичных страниц.

302 Temporary Redirect — временный редирект. Он говорит о временном перемещении сайта или отдельных его страниц. Как правило, используется, когда на основной площадке проводятся технические работы. 

Последствия для поисковой выдачи также неоднозначные:

  • При 301 редиректе в поисковой выдаче отображается новый URL, старый игнорируется.
    Однако на эту смену требуется время, Google рекомендует сохранять статус страницы в течение года, чтобы не «сбить» выдачу.
  • При 302 редиректе поисковая система хранит старый URL в течение полугода, в это время выдавая новую ссылку. По прошествии полугода редирект получает статус постоянного. 

Поисковые системы с подозрением относятся к 302 коду, так как нередко вебмастера упускают сроки, а затем пытаются вернуть настройки. Да и злоупотребление данным редиректом при черном SEO добавило негативного отношения. Поэтому, если Вам дорога репутация ресурса и его положение в выдаче, лучше не рисковать и пользоваться 301 редиректом в .htaccess.

Правила настройки Redirect, RewriteRule и RewriteCond

Существует несколько директив, с помощью которых совершается перенаправление пользователя. 

Директива Redirect в htaccess

Синтаксис:  

Redirect [status] /oldpage http://newpage

Стандартное перенаправление, которое используется чаще всего. В скобках вместо status необходимо указать код редиректа: 301 или 302. Страница «oldpage» должна быть прописана
в формате без указания полного адреса сайта, но с указанием полного относительного адреса URL начиная со слэша «/», то есть нужно указать именно корень сайта. 

Адрес «newpage» прописывается полностью, то есть с названием домена и протокола http
или https. 

Пример:

Redirect 301 /oldpage.php https://htaccess.ru/newpage.php

Пример:

Redirect 301 /oldpage.php https://htaccess.ru/newpage.php

Директива RewriteRule

Синтаксис:

RewriteRule Шаблон Подстановка [коды]

Директива RewriteRule диктует правила перехода на новую платформу. Если проводится внешний редирект, URL меняется в строке браузера — «[R=301,L]». При внутреннем редиректе URL не меняется — «[R=301]» или «[L]».

Директива RewriteCond

Синтаксис:

RewriteCond Сравниваемая_Строка Условие

Директива RewriteCond задает условия, при которых будут выполняться правила RewriteRule. Такими условиями могут стать браузер, IP-адрес, заголовок и т.д. 

Для чего используется перенаправление?

Редирект активно используется вебмастерами, так как полезен в различных обстоятельствах:

  • При переезде сайта на новый домен. Чтобы не потерять трафик, направляющийся на старую страницу, создается перенаправление.
  • Установка SSL-сертификата. Позволяет перенаправить пользователь со страниц с http на адрес с префиксом.
  • Смена URL страницы. Это событие может быть связано со сменой CMS или с SEO-оптимизацией.
  • Перенос разделов на субдомены. 
  • Для концентрации трафика с разных доменных зон в одной. Вебмастер покупает домены example.com, example.ru, example.net, example.org и example.biz и на четырех последних сайтах настраивает редирект на example.com.
  • Для показа мобильным пользователям специальной версии. 

Способы настроить редирект 301

В зависимости от площадок, с которой перенаправляется, и на которую направляется поток трафика, используется различный синтаксис редиректа. 

С одной страницы на другую

Данный редирект раз и навсегда изменит URL страницы и позволит избавиться от дублей
и устаревших материалов. 

Синтаксис:

Redirect 301 /oldpage/ http://site.ru/newpage/

Более подробный синтаксис того же редиректа:

RewriteCond %{REQUEST_URI} ^/oldpage/$ 
RewriteRule ^.*$ 
http://site.ru/newpage/? [R=30

После сохранения такого кода будет осуществляться постоянная переадресация со старой страницы на новую, раздел старой страницы будет удален из поиска, а новой странице передастся весь ее вес.

Склейка зеркал сайта (www / без www)

Подобная работа проводится в том случае, когда под один сайт приобретается сразу несколько доменов, различающихся лишь наличием или отсутствием тройного W.

301 редирект с ресурса с www на платформу без www, при котором главным зеркалом считается домен без www, осуществляется при помощи следующей комбинации:

RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301] 

Обратный редирект, при котором главным зеркалом считается домен с www, можно реализовать через код:

RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=30

Таким образом обе страницы связываются, и трафик не разделяется.  

С http на https

Чтобы в поиск не попадали дубли, а пользователи не заходили на страницы с разными протоколами, прописывается данный редирект. Его итогом будет добавление ко всем URL протокола https. Провести подобную работу можно на разных уровнях.

Для всего сайта

Чтобы полностью перенаправить сайт, необходимо в файле .htaccess добавить следующие строки:

RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

При ряде обстоятельств такая комбинация может не сработать. В таком случае просто замените ее следующим кодом:

RewriteCond %{HTTPS} =on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Если же и после этого изменения остается циклическое перенаправление, введите:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Редирект — дело сложное, поэтому и третий код не панацея. Если он не сработал, введите: 

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} =/page.php
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Это должно помочь и все пользователи и поисковые системы будут перенаправляться на домен
с протоколом https, но SEO-данные при этом останутся неизменными. 

Постранично

Если Вам необходимо перенести весь сайт, кроме одной страницы, используйте постраничный редирект. Он прописывается следующим образом:

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^/page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

После этого все страницы, кроме указанной, будут перенаправлены. 

Для одной страницы

Если же, наоборот, необходимо перенаправить единственную страницу, добавьте 4 строчки кода: 

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} =/page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

С https на http

Чтобы провернуть обратный редирект и лишить всех страниц SSL-сертификата, используйте следующую комбинацию синтаксиса:

RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

Это должно связать страницы доменов и дать им протокол http.

С 404 Not Found

Чтобы перенаправлять пользователей с несуществующих страниц на главную или любую другую страницу, также можно использовать редирект. Однако, поисковые системы не любят обилие связок и считают необходимым указывать ошибку 404, поэтому работать нужно с осторожностью. 

Синтаксис:

ErrorDocument 404 http://www.site.com/301.html 

В итоге все обращения к 404 страницам будут завершаться на главной странице сайта. 

Итогом данного редиректа будет являться перенаправление всех обращений к страницам 404 на главную страницу сайта.

Со страниц со слешем на без слеша

Чтобы привести URL к единому формату и исключить все дубли в поиске, желательно провести редирект для сайтов без слэша. 

Синтаксис:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

В итоге слэш просто удалится. 

Со страниц без слеша на слеш

Можно провернуть и обратную операцию. Для этого пропишите:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Результат — добавленный слэш на страницах без него.

Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы

RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} ![^/]$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]

Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы

RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} ![^/]$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы

RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)/$ http://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)/$ http://www.%1/$1 [L,R=301]

Один (а не два последовательных!) 301 редирект на без www и без слеша на конце адреса страницы

RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} /$ 
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)/$ http://%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)/$ http://%1/$1 [L,R=301]

Только адреса site.ru/index.php на основное зеркало site.ru

Чтобы перенести сайт без GET-параметров, пропишите в файле:

RewriteCond %{REQUEST_URI} /index.php
RewriteCond %{QUERY_STRING} ^z
RewriteRule ^(.*)$ http://site.ru/? [R=301,L]

Всех адресов с index.php и GET параметрами на страницы только с GET параметрами 

Проводится при помощи команды:

RewriteCond %{REQUEST_URI} /index.php
RewriteRule ^(.*)$ http://site.ru/ [R=301,L]

Итог: index.php в url будет вырезан.

Для index.php, index.html или index.htm

Провести массовую склейку на любой CMS, например, Joomla, можно при помощи кода:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.(php|html|htm) HTTP/ 
RewriteRule ^(.*)index.(php|html|htm)$ http://site.ru/$1 [R=301,L]

Url с GET параметрами на статический

Есть 2 варианта переноса сайта с динамическим-URL на статический:

1 вариант — простой адрес с GET параметром:

RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /supermodel/? [R=301,L] 

2 вариант — со страницы и GET параметром:

RewriteCond %{REQUEST_URI} /test/
RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /supermodel/? [R=301,L]

Каждая страница одного домена на такой же адрес другого url

Подобная операция совершается при помощи кода:

RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://site.ru/$1 [L,R=301]

Редирект для PHP

PHP— это сервероориентированный язык, поэтому такой вид редиректа будет проводиться
на уровне сервера, а не браузера, что обеспечивает высокую скорость работы. При этом каждой страничке, на которую будет производиться редирект, присваивается свой уникальный REFERER, а это значит, что скрыть страницу-источник не получится.

Чтобы редирект сработал, его чтение должно проводиться в первую очередь — до того, как
на экран будет выведен первый символ. Поэтому ставить пробел перед <? нельзя.

Код редиректа на примере файла index.php:

<?php
header («Location: https://stokrat.org/», TRUE, 302);
?>

или

<?php
header («Location: https://stokrat.org/», TRUE, 301);
?>

Если Вы подключаете 302 редирект, выбираете первый вариант; если 301 — второй.
Дело в том, что через PHP, как правило, настраивают именно временное перенаправление.

Редирект 301 в разных панелях управления хостингом

Мы разберем две наиболее популярные панели — Cpanel и ISPmanager.

Чтобы настроить редирект в Cpanel, перейдите в блок  «Домены» => «Перенаправления». Появится окно настройки, где нужно выбрать:

  • тип — постоянный 301;
  • https://www — выбрать старый домен сайта;
  • перенаправляет на — адрес нового домена;
  • поставить галочку напротив «Перенаправлять только с www».

Сохраните настройки и перенаправление готово. 

Через ISPmanager можно править файлы nginx.config или .htaccess, но вся работа уже сделана
за Вас. К примеру, для настройки редиректа https/http достаточно просто убрать галочку с соответствующего пункта в разделе «WWW-домены».

Особенности редиректа для популярных CMS

CMS-системы облегчают процесс настройки редиректа вплоть до пары кликов.
Опишем особенности взаимодействия с различными платформами. 

WordPress

Чтобы перенаправить страницу, Вам нужно скачать плагины из панели управления. Зайдите
в «Плагины» -> «Добавить новый». Из доступных выберите необходимый и скачайте. 

OpenCart

Чтобы совершить редирект через OpenCart достаточно зайти в «Менеджер 301 редиректов»
и выбрать необходимый вариант перенаправления.

Битрикс

В Битриксе Вам нужно обратиться к модулю «Редирект мастер», но за него придется доплатить.
В оплаченном меню стоит выбрать свой вид редиректа и активировать его.  

Joomla

Найти компонент, отвечающий за редирект в Joomla, можно в меню «Компоненты» — > «Перенаправление». Здесь Вы увидите все имеющиеся редиректы и сможете создать новый, заполнить все поля и сохранить настройки. После этого редирект активируется. 

Настройка кириллических доменов .РФ

Для доменов в зоне РФ действуют все те же правила, но только все кириллические символы необходимо заменить на альтернативный код на латинице. В частности, сама зона .рф преобразуется в .xn--p1ai.

Далее представлены синтаксисы для доменов в зоне РФ.

301 редирект с одного домена на другой

RewriteCond %{HTTP_HOST} ^xn-....xn--p1ai$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

Редирект на папки со слешем на конце

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.site.ru/$1/ [L,R=301]

Редирект на папку без слеша — убираем слеш на конце

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ http://www.site.ru/$1 [R=301,L]

Переадресация с домена в папку другого сайта

RewriteCond %{HTTP_HOST} ^si-te.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/si-te/ [R=301,L]

Редирект со всех страниц кроме определенной папки

Кроме папки администратора bitrix #

RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301]
RewriteRule ^(.*)$ http://www.newsite.ru/new/ [L,R=301]

Переадресация всех файлов папки на конкретный файл

RewriteRule ^dir(.*)$ /new-file.php [L,R=301]

Переадресация файлов папки на другой файл с исключением

RewriteRule ^dir/no-file.html /no-file-new.html [L,R=301]
RewriteRule ^dir(.*)$ /all.php [L,R=301]

Редирект замены расширений файлов – с html на php

RedirectMatch 301 (.*).html$ http://www.new-site.ru$1.php

Редирект с index.php на корень сайта

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://www.site.ru/ [R=301,L] 

Редирект всех индексных страниц на корень

RewriteRule ^(.*)index.php$ http://www.site.ru/$1 [R=301,L]

Переадресация с поддомена на основной домен

RewriteCond %{HTTP_HOST} ^test.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI} [R=301,NC,L,QSA]

Редирект страницы из различных директорий

RewriteRule [^abc]/unique-file.html /unique-file.html [R=301,L]

Создаем ЧПУ-копию динамических страниц

RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11 [NC,L]

Код позволяет создать копию страницы с относительным адресом
/studio/news/detail.php?ID=230354&PAGEN_2=11 по адресу /testovyi/test/

Переадресация с https на http

RewriteCond %{HTTPS} "on"
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]

Настройка ответа 403 для спама по REFERER

RewriteCond %{HTTP_REFERER} ref-spam-site.ru [NC,OR]
RewriteCond %{HTTP_REFERER} another-ref-spam.ru [NC]
RewriteRule .* - [F]

Обработка ошибки 404 в .htaccess

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.site.ru/dir/");
exit();
?>

Как узнать, что переадресация работает правильно

Узнать, корректен ли код 301 редиректа можно при помощи браузера. Введите в адресную строку URL страницы, с которой совершается переадресация. В идеале Вы должны увидеть ту страницу и тот URL, на которую был настроен редирект.

После того, как Вы настроили 301 редирект, его необходимо проверить на корректность работы. Для этого введите в адресной строке своего браузера URL страницы, с которой была сделана переадресация. Если Вы видите новую страницу, то есть, ту, на которую сделали редирект
— то все корректно работает.

Также можно заглянуть в Яндекс.Вебмастер, открыть раздел «Инструменты» — > «Проверка ответа сервера». В поле «Опрашиваемый URL» введите адрес старой страницы. Вы должны получить код статуса http — «301 Moved Permanently».

Что делать, если 301 редирект не работает?

Если проверка прошла неудачно и редирект не реализован проверьте ряд параметров:

Синтаксические ошибки

Любой лишний пробел, перенос строки или точка способны помешать работе команды. Копируйте код аккуратно, не добавляя комментариев, номеров строк и т.д.

Использование URL адреса с параметром

«Упрощенный» вариант редиректа в файле .htaccess вида: Redirect 301 “oldpage” “newpage”
— который может уместиться в одну строку, работает исключительно с URL без параметров. 

Команда типа Redirect 301 /index.php?productID=1109 http://dh-agency.ru/for-seo/ работать не будет. Замените ее на Redirect 301 /index.php http://dh-agency.ru/category/for-seo-professionals/.

Некорректное расположение

PHP-код, отдающий заголовок, должен находиться над всеми последующими командами
и выводами. 

Отключен модуль mod_rewrite

Модуль mod_rewrite должен быть подключен и активирован — без него редирект не заработает.

Заключение

В заключение, хотелось бы еще раз повторить — не стоит злоупотреблять редиректами, так как это может привести к пессимизации сайта. Откажитесь от постоянной переадресации, если:

  • Вы переезжаете лишь на время — лучше используйте 302 или 3074 код;
  • Вы сбегаете от банов, фильтров, штрафов и прочих проблем с доменом — при переезде
    Вы захватите все проблемы с собой.

Если же причины переадресации обоснованы, смело прописывайте 301 код
— благо теперь Вы знаете, как это делается. 

Общая оценка
/ 5. Всего проголосовало

Содержание

  • 1 Что такое 301 редирект для сайта
  • 2 Для чего нужен 301 Redirect
    • 2.1 Адрес страницы изменен
    • 2.2 Склейка зеркал
    • 2.3 Смена домена
    • 2.4 Исправляем технический бардак
    • 2.5 301 редирект вместо 404 Not Found
  • 3 Когда не надо использовать код сервера 301 и другие нюансы
    • 3.1 Временная переадресация при неуверенности
    • 3.2 Спасение от фильтров стоит ли?
    • 3.3 Нюансы использования 301 редиректа
  • 4 Как настроить 301 Редирект в .htaccess на Apache
    • 4.1 301 Редирект с www на без www для склейки зеркал
    • 4.2 301 Redirect без www на www
    • 4.3 301 Редирект с https на http и наоборот в Htaccess
    • 4.4 Универсальный редирект с index.php и .html на ссылку без них
    • 4.5 301 редирект со страницы на страницу
  • 5 Redirect в PHP
    • 5.1 Как убрать дубль адреса сайта в адресной строке с помощью ПХП
    • 5.2 Как убрать дубль страницы со слешем с помощью PHP
  • 6 Особенности настройки Permanent Redirect на nginx.
    • 6.1 301 редирект на nginx с www на без www
    • 6.2 Permanent Redirect 301 на nginx с домена без www на домен с www
    • 6.3 Redirect 301 в nginx.conf со страницы с index.php на адрес без index.php
  • 7 Как сделать Редирект с http на https без htaccess — ковыряем web.config
  • 8 Когда редирект с https на http не работает — что делать?
  • 9 301 moved permanently что это и как исправить
  • 10 302 Редирект — временное переселение
    • 10.1 Чем отличается 302 Редирект от 301?
  • 11 Сервисы для контроля Редиректов

Сегодня мы поговорим о редиректе и постараемся разобрать данный вопрос максимально широко и в то же время не распыляться. Важность редиректов в сео просто огромна, в то же время велики и риски проблем из-за неправильной переадресации. Вопрос важный, сложный и очень нужный, так что читаем далее!

Что такое 301 редирект для сайта

Что такое 301 редирект? Даже не так. Что такое Redirect? Это команда поисковому роботу перенаправлять посетителя на другую страницу, которая была перемещена в другое место. Цифра 301 — это код, который говорит об окончательном перемещении страницы в новую локацию. Ведь когда мы переходим на какую-то страницу и нам выдается ошибка, мы видим перед собой код этой ошибки и расшифровку. Например, код 404 говорит нам — Not Found, что означает — страница не найдена, а 505 ошибка сообщает, что ответ от сервера не был получен. Но если вышеописанные ошибки видны посетителю на открытой странице браузера, то шифры перенаправления видят только роботы, которые и направляют гостя по другой ссылке (если, конечно, редирект был настроен правильно). Вот как раз новую ссылку, меняющуюся в адресной строке браузера посетитель и заметит. То есть 301 редирект перебрасывает пользователя с одной страницы на другую, не останавливаясь на промежуточном адресе, доводя до конечного места локации контента.

Официальное название редиректа — Permanent Redirect 301, используется как инструмент в SEO. Код прописывается в файлах на сервере, где расположен сайт, и при обращении по ссылке, которая указана в редиректе как та, с которой нужно увести посетителя, сервер отдает системе код 301 с новыми данными для отображения ссылки и «пометкой» — перемещен на другой адрес (moved permanently).

301 рдирект - основы

Каким образом происходит процесс перемещения? С помощью кода в файлах на сервере с сайтом размещается специальный код, который роботы поисковых систем считывают и выполняют. В этом коде обязательно присутствуют константы: откуда переместить и куда. Причин для использования 301 редиректа на сайте может быть множество, рассмотрим основные из них в этой статье, ведь, возможно, что какой-то способ вам понабиться, и вы им воспользуетесь.

Я подготовил мощный мини-курс по SEO текстам, которые сами выходят в ТОП! Курс записан в формате пошаговых инструкций и в данный момент доступен БЕСПЛАТНО, вместо 2999, так что не упустите! Ссылка на скачивание мини-курса.

Для чего нужен 301 Redirect

301 редирект является тем видом перенаправления, который поисковые системы признают как правильное решение для перемещенных страниц сайта. Поэтому при настройке Permanent Redirect никаких изменений в ранжировании или наложений штрафных санкций не происходит. Это естественная переадресация. Какое-то время назад этот способ переадресации использовался вебмастерами для выхода из под фильтров, но не факт, что на сегодняшний день этот способ может помочь. Хотя от определенных фильтров иногда спасает (ссылка).

На сегодняшний день основными показаниями к использованию 301 Редиректа являются ситуации:

  • изменения адреса страницы сайта, даже на одну букву или символ;
  • склейка зеркал (домен с www и без www, домены в разных зонах);
  • смена домена интернет-ресурса;
  • борьба с дублями из-за технического бардака.

Где делают Permanent Redirect 301? Способы зависят от возможностей вебмастера и его доступа к данным. Поэтому создать 301 Редирект можно через htaccess, php, настройки сервера, javascript. Естественно, что использовать все способы одновременно не надо.

Место использования 301 редиректа

Адрес страницы изменен

Самый простой и распространенный вариант наломать мелких дров в админпанели сайта и создать ошибки при переходе по ссылке — это откорректировать уже проиндексированный неЧПУ. Когда формируется новая страница сайта, ей присваивается номер и адрес из латинских букв. Первое время не очень красивая ссылка никого не смущает, но когда обнаруживается, что можно сделать покрасивше — руки так и чешутся откорректировать url к более человекоподобному:). И тут наступает момент, когда в вебмастере гугла и яндекса обнаруживается огромное количество дублей. Особенно, когда была видоизменена категория сайта в структуре. Google, например, после обновления базы, то есть когда робот заново обошел сайт с начала до конца, покажет в панели вебмастера новые адреса страниц, но старые тоже оставит в поиске, сделав замечание владельцу, что у него на сайте присутствуют одинаковые мета-данные, которых на самом деле там и нет. Переход по старому адресу из поисковой системы выдаст пользователю ошибку 404 (если конечно она правильно настроена), тем самым убив желание потенциального посетителя переходить далее на сайт.

Итог бездумной корректировки URL? Поисковая система видит отказ пользователя и понижает сайт в выдаче по поисковому запросу. Катастрофа. А все из-за какой-то корявой ссылки, которая изначально осталась незамеченной и никого, кроме самого «вебмастера» совершенно не смущала. Но эту ситуацию можно исправить как раз 301 редиректом. Как сделать 301 редирект с одной страницы на другую (со старого url на новый), расскажем дальше.

Склейка зеркал

Зеркала — это, например, когда сайт один, а доменов несколько. Обычно, компании, работающие на бренд, выкупают сразу все доступные зоны, чтобы никто не смог воспользоваться их именем. Также присоединяются названия адреса сайта через дефис и без него. Но даже без такой катавасии, на вашем сайте 100% есть зеркала! В данном случае это написание адреса сайта с www и без, а также доступ через https. В любом из этих случаев делается 301 redirect, причем еще при создании вебресурса, иначе от головной боли с дублями страниц потом тяжело избавится. Редирект 301 с www на без www и наоборот (если основным сайтом является www.имя_домена.ru), а также c http на https (сомневаюсь, что часто бывает перенаправление наоборот), включая разные доменные зоны, обязателен! Для проверки наличия основного зеркала, помогут панели вебмастера поисковых систем.

КлеиСклейка зеркал

Смена домена

По разным причинам сайту нужно переехать на новый домен. Чаще всего компания делает ребрендинг, а название домена не отвечает поставленным целям. Ради благозвучия и соответствия названия домена бренду, сайт переезжает. Чтобы не потерять уже постоянных посетителей и поставить перед фактом поисковых роботов, сеошники делают 301редирект со старого домена на новый. Очень важно, чтобы поисковые системы получали ответ от сервера код 301, а не 404 или 302. Работа окажется легкой, если сайтик небольшой (визитка, лэндинг, промо-страница) и понадобится много труда для огромного интернет-магазина, потому что перенаправление на главную страницу здесь не подойдет. Каждый старый URL привязывают к аналогичному новому (постраничная переадресация).

Исправляем технический бардак

Здесь вариантов устроить технический бардак уйма начиная с нарушений элементарных правил создания страниц и заканчивая дублями, которые создаются плагинами на сайте (переводчики, комментарии, поиск по сайту). Сюда же можно отнести мобильные версии выдачи страниц (с этим в последнее время хлопот немало), но их лечат прописыванием canonical. Дубли создаются не только по вине вебмастера, есть и вынужденные. Но случаи по неопытности первого, все же больше наносят вреда. Некоторые прячут такие погрешности закрытием от индексации, но лучше использовать 301 Permanent Redirect и тогда робот точно поймет, что хочет ему сказать человек.

301 редирект вместо 404 Not Found

Не торопитесь сразу убирать 404 (Страница не найдена) и везде проставлять 301 Редирект. Тут важно прочувствовать разницу. Код 404 Not Found обязателен на страницах, которые удалены или никогда не существовали, а вот с битыми ссылками можно бороться 301 Редиректом! Если страница, которую ищет пользователь, существует, зачем отсылать его по древу сайта для ее поиска? Найдена битая ссылка на какую-то страницу? Перенаправляем по правильному адресу кодом 301 и посетитель даже не догадается о том, что ссылка уже была нерабочая.

не надо делать редирект

Когда не надо использовать код сервера 301 и другие нюансы

Есть моменты когда так и хочется воспользоваться 301 редиректом на сайте, но не всегда цель оправдывает средства. Вообще, желательно, во внутренних ресурсах сайта использовать код 301 только в случаях крайней необходимости. Иначе, бездумно посылая робота со ссылки на ссылку, можно создать бесконечное циклическое перенаправление, которое просто убьет весь сайт. И поисковый робот бросит все старания найти место размещения контента, чем навредит репутации ресурса в целом, не доведя посетителя до конца.

Временная переадресация при неуверенности

Permanent Redirect 301 (Перманентный редирект) используется для указания роботам окончательного решения. Что это значит? А это говорит о том, что если вы не уверены навсегда ли будет перемещена страница, тогда безопасней 301 редирект не делать. Redirect склеивает странички, и робот уже просто не видит первой, а это значит, что она канула в лету безвозвратно. Для временной переадресации используют другие способы, когда при принятии решения вернуть все на свои места, не вызовет никаких проблем.

Спасение от фильтров стоит ли?

Когда-то 301 редиректом спасались от фильтров поисковых систем, но нет 100% гарантии, что фильтр в будущем не переместится на новый домен. Создавая постоянное перенаправление на новый сайт, перемещается ТИЦ с PR. Мною замечено, что с алгоритмом «Пингвина» еще можно помудохаться, а вот от АГС такие манипуляции не спасут однозначно. Поэтому сейчас Permanent Redirect не так популярен для спасения от фильтров ПС, но зато помогает не потерять заслуженные позиции. Чего вполне достаточно для усердных вебмастеров.

Нюансы использования 301 редиректа

  1. Исправлять ссылки ведущие извне 301 редиректом вполне нормально, потому что отредактировать их у нас нет возможности. А вот кривые внутренние пути надо максимально исправлять вручную другими, более щадящими способами.
  2. Настраивая redirect, нужно быть предельно внимательным, чтобы не захватить какие-нибудь системные ссылки из корневых каталогов или пути к папкам и плагинам.
  3. Для поиска ссылок, нуждающихся в исправлении, необходимо использовать инструменты поисковых систем Google и Яндекс Вебмастер. Очевидные дубли страниц видны в Гугл Вебмастер во вкладке Вид в поиске > Оптимизация HTML, а в Яндексе — Индексирование — Статистика.
  4. Между нашими главными поисковыми гигантами есть одна огромная особенность: если Google после обновления базы самостоятельно уберет исправленные ошибки из панели вебмастера, то Яндекс этого может вообще не сделать. Это дело можно поправить прописыванием в robot.txt запрета на индексирование или подать ручной запрос в поддержку на удаление из базы плохих ссылок. В 2016 Вебмастер Яндекса перешел на новый уровень, расширив функционал системы. Правда, некоторые возможности еще не работают, но уже функционируют корректно бывшая аддурилка, а теперь запрос на внеочередной переобход страницы роботом, проверка мобильности страниц, удобная статистика по ключевым словам с разбивкой на ТОП 3, 10, 50.

Как настроить 301 Редирект в .htaccess на Apache

Одним из самых старых и распространенных способов запустить 301 редирект на Apache является прописывание специального кода в корневом каталоге сайта в файле .htaccess. Неоспоримым преимуществом этого метода является быстрая загрузка команд сразу с сервера еще до запуска скриптов без дополнительной на него нагрузки. Не зря перед названием htaccess я поставил точку — это файл без названием с расширением. Знаю, непривычно, но этот файлик есть в корневой папке сайта или, по крайней мере, должен быть.

301 редирект на Apache

Как найти htaccess? Открываем FTP-клиент (например, Fillezilla), переходим на каталог сайта и опля! Не случилось опля? Нет такого файла? Попробуйте проверить настройки ftp-клиента. К примеру, в FilleZille нажмите на вкладку Сервер и выберите пункт Принудительно отображать скрытые файлы. Ничего не появилось? Значит, создаем новый файл на свое компьютере. Создаем .txt-шный файл, вписываем нужный код и сохраняем. И тут паника: Windows не сохраняет файл с расширением .htaccess и без имени! Катастрофа, думаете вы. Вовсе нет. Забрасываете файл с расширением тхт через ftp-менеджер в корневую папку сайта и там переименовываете. Ура! Файл .htaccess создан. Теперь, при внесении каких-либо изменений в него, достаточно его просто открыть в блокноте через ftp-клиент или в NotePad++.

А какой код писать, как настроить 301 редирект в htaccess? А вот в зависимости от того, для чего он нам нужен, и будем моделировать код перенаправления. В первую очередь, Permanent Redirect 301 прописывается в самом начале страницы htaccess после строки «R ewriteEngine On», для того чтобы команда обрабатывалась первой. Сервер читает файл построчно сверху. Ниже привел популярные коды для перенаправления.

301 Редирект с www на без www для склейки зеркал

Заранее оговорюсь — во всех примерах в команде R ewriteCond лишний пробел, уберите его перед копированием!

RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
R ewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

301 Redirect без www на www

R ewriteCond %{HTTP_HOST} ^site.ru$ [NC]
R ewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

варианты редиректа

Чувствуете разницу? R ewrite переводится как переписать, Cond — условие, Rule — правило. А с виду для русскоязычных можно запомнить: кто рулит? Рулит вторая строчка, то есть указываем тот путь, куда перенаправляем. Каждый второй вариант приведенных выше правил лучше первого тем, что при перенаправлении будет проверяться не только наличие www в адресе сайта, а и соответствие названия домена указанному. Таким образом, исключается возможность доступа посторонних лиц к файлам на сервере, например, через IP-адрес. А это, как-никак, дополнительная защита.

А теперь расшифровка всех символов в коде 301 редиректа:

R ewriteCond — искомое условие, то есть ссылка, которую, в нашем случае, нужно перенаправить.

R ewriteRule — правило, которое необходимо выполнить с тем условием, которое указано в предыдущей строке.

Мета-символы:

^ — начало строки;

$ — конец строки;

! — отрицание;

— за экранирующим слешем считать метасимволы обычными символами;

. — любой символ в количестве одной штуки:)

() — разбиение на группы;

? — повторение символа от 0 до 1 раза;

* — повторение от 0 до 65536;

+ = повторение от 1 до 65536;

[] — дополнительные опции;

NC (NOCASE) — отключить проверку регистра;

R=301 (Redirect 301) — вернуть ответ браузеру с кодом 301;

L (LAST) — остановка процесса перенаправления, указывая на конечность текущего местоположения данных.

%{QUERY_STRING} — набор переменных для php.

301 Редирект с https на http и наоборот в Htaccess

Небольшим кодом делаем перенаправление с https на http в htaccess:

R ewriteEngine On

R ewriteCond %{HTTPS} on

R ewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}

Если нужно сделать обратный редирект 301 с http на https, то прописываем такой вариант:

R ewriteEngine OnR ewriteCond %{HTTPS} =on

R ewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Универсальный редирект с index.php и .html на ссылку без них

Создание дублей страниц с добавкой в конце пути index.php или расширения html у веб-страницы происходит сплошь и рядом. Явно это становится видно, когда адрес вашей главной страницы уже выглядит так http://ваш_сайт/index.php или http://ваш_сайт.html. Не очень красиво, правда? Короче — хуже только крокозябры:) Предлагаю исправить ситуацию универсальным кодом:

R ewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.(php|html) HTTP/

R ewriteRule ^(.*)index.(php|html)$ $1 [R=301,L]

А добавки к адресу, которые берутся вроде бы ниоткуда, когда на сайте все нормально настроено: http://ваш_сайт/страница_перехода.html&post=абракадабра? Эти малопривлекательные крякозябры цепляются к хвосту благодаря социальным сетям, где лояльный читатель поделился вашим постом. К адресам сайтов добавляются статистика для отслеживания источников (и тут, екалемене, анонимности никакой).

Избавляемся от абракадабры прописыванием 301 редиректа в htaccess:

R ewriteCond %{REQUEST_URI} ^(.*)&post=R ewriteRule ^(.*)&post=(.*)$ $1 [R=301,L]

Аналогично проделываем процедуру с другими видами хвостиков, например, когда после адреса страницы вылазит &bau=fdf=fdwnf,Jf;pg’;bui=ds643dfvv5, видоизменяем код так:

R ewriteCond %{REQUEST_URI} ^(.*)&bau=

R ewriteRule ^(.*)&sa=(.*)$ $1 [R=301,L]

Структура остается прежней, меняем только первую повторяющуюся часть ссылки. А таких «липучек» может быть много, но делать это надо, потому что такие ссылки индексируются поисковыми системами.

Еще одним примером могу привести, когда нужно убрать после фразы index.php другие параметры, сопутствующие в пути из-за скриптов. Если ссылка выглядит как http://ваш_сайт/index.php?list=1, можем очистить хвосты скриптов следующим кодом в htaccess:

R ewriteCond %{QUERY_STRING} ^list=1$

R ewriteRule ^(.*).php?(.*)$ $1.php [R=301,NC,L]

Избавится от дублей с index.php (редиректс index.php на категорию), чтобы после ЧПУ не было больше приставок, поможет следующий код:

R ewriteRule ^(.*)index.php$ $1 [R=301,L]

Теперь вид сайта в адресной строке будет выглядеть как http://ваш_сайт.ru, а не http://ваш_сайт.ru/index.php. Правда, так лучше?

301 редирект со страницы на страницу

Когда нужно сделать 301 редирект с одной страницы на другую можно воспользоваться следующим кодом в нескольких вариациях синтаксиса. Только каждое перенаправлению на новую страницу создается отдельной строкой. Вот как выглядят правила:

Redirect 301 /адрес_страницы_1.html http://ваш_домен.ru/адрес_страницы_2.html

или

Redirect permanent /адрес_страницы_1.html http://ваш_домен.ru/адрес_страницы_2.html

или

RedirectPermanent /адрес_страницы_1.html http://ваш_домен.ru/адрес_страницы_2.html

Обратите внимание, что адрес домена, на который перенаправляется первая страница, может быть совершенно другим. То есть это может быть реальная переадресация со страницы одного сайта на страницу другого.

Redirect в PHP

301 Редирект в PHP используется, когда с созданием в htaccess возникают трудности, а функция в ПХП будет более логичной. Синтаксис permanent redirect в php выглядит так:

header(«HTTP/1.1 301 Moved Permanently»);header(«Location: http://ваш_домен.ru»);die(«Redirect»);

Данный синтаксис сообщает браузеру пользователя с какой страницы и на какой сайт надо сделать перманентный редирект. Стоит учесть что http://ваш_домен.ru — необязательно главная страница одного и того же ресурса, это может быть как отдельная страница, категория, так и совершенно левый домен. Если при написании функции redirect была допущена ошибка, браузер сообщит об этом в окне надпись «Redirect». Примеры функций Permanent Redirect далее.

указатели в разные стороны

Как убрать дубль адреса сайта в адресной строке с помощью ПХП

if (strpos($_SERVER[‘REQUEST_URI’], ‘http://ваш_сайт.ru’) !== false)

{

$real_page_url = «http://ваш_сайт.ru».str_replace ( «/http://ваш_сайт.ru», «», $_SERVER[‘REQUEST_URI’] ); 

header(«HTTP/1.1 301 Moved Permanently»);

header(«Location: $real_page_url»);

die(«Redirect»);

}

Вот такой функцией убирается дублирование адреса вида: http://ваш_сайт.ru/ http://ваш_сайт.ru/страница. Обратите внимание на написание URL в условии — здесь оно пишется как URI. Получается что при выполнении условия нахождения в адресной строке двойной ссылки, браузер должен перенаправить пользователя 301 редиректом на корректную страницу с помощью переменнной $real_page_url, а кривую ссылку считать ложной.

Как убрать дубль страницы со слешем с помощью PHP

if ( ( $_SERVER[‘REQUEST_URI’], — 1, 1 ) == ‘/’ )

{

$requested_url = rtrim($requested_url, ‘/’);

header(«HTTP/1.0 301 Moved Permanently»);

header(«Location: $requested_url»);

die(«Redirect»);

}

Эта простая функция проверяет наличие в адресной строке конечного слеша. И если слеш обнаружен, то он обрезается с помощью перенаправления на ссылку без конечного слеша.

Особенности настройки Permanent Redirect на nginx.

Permanent Redirect на nginx используют не так часто, как на Apache — на это есть множество причин, и основная из них — это сложности настройки этого конфигурационного серверного файла. Да и не все хостинги дают возможность вебмастеру таким способом решать возникшие трудности. Одним из вероятных проблем, которые можно решить 301 редиректом на nginx — это закрытие индексирования через IP и тестовые сервера.

Чтобы настроить permanent redirect на nginx с ip на http://ваш_домен.ru — находим файл nginx.conf, чаще всего размещенный по пути /etc/nginx/nginx.conf. В нем прописываем строки:

server {listen 0.0.00.000:80 default;server_name _;R ewrite ^/(.*)$ http://ваш_домен.ru/$1 permanent;}

Нолями обозначили IP, через который был доступен сайт и порт 80. Таким способом перенаправляем любой запрос по IP на нормальную ссылку. Можно обойтись и без 301 редиректа, а указать закрытие доступа, строкой return 444, вместо R ewrite ^/(.*)$ http://ваш_домен.ru/$1 permanent, и выполнить ‘invoke-rc.d nginx reload’.

Одним из вариантов не ковыряться в nginx является корректная настройка HTTP-сервера, на котором закрывается соединение через IP. Если страницы через доступ по IP попалив индекс, то после таких манипуляций, со временем они исчезнут оттуда. Но как всегда Яндекс может самостоятельно этого не сделать — и тогда опять пишем в поддержку.

301 редирект на nginx с www на без www

server

{

listen 80;

server_name www.имя_сайта.ru;

R ewrite ^ http://имя_сайта.ru$request_uri? permanent;

}

Permanent Redirect 301 на nginx с домена без www на домен с www

server

{

listen 80;

server_name имя_сайта.ru;

R ewrite ^ http://www.имя_сайта.ru$request_uri? permanent;

}

Redirect 301 в nginx.conf со страницы с index.php на адрес без index.php

location = /index.php {

if ($request_uri = /index.php) {

R ewrite ^ http://$host? permanent;#301 redirect

}

fastcgi_pass  unix:/tmp/fastcgi.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include    fastcgi_params;

}

Как сделать Редирект с http на https без htaccess — ковыряем web.config

Если вы хотите сделать 301 редирект с http на https без htaccess и вам не подходят настройки nginx, возможно, у вас хостинг под управлением Windows? Тогда добавляем вот такие строчки в файл web.config на сервере:

<?xml version=»1.0″ encoding=»UTF-8″?>

<configuration>

  <system.webServer>

    <R ewrite>  

    <rules>      

  <rule name=»Redirect to https» stopProcessing=»true»>   

       <match url=»(.*)» />   

       <conditions>  

          <add input=»{HTTPS}» pattern=»off» ignoreCase=»true» />    

      </conditions>    

      <action type=»Redirect» url=»https://{HTTP_HOST}{REQUEST_URI}» redirectType=»Permanent» />  

      </rule>  

    </rules>

  </R ewrite> 

</system.webServer>

</configuration>

Таким образом, будет настроено полное перенаправление домена с http на https, вместе с поддоменами. Но если поддомены трогать запрещено, тогда используем код ниже, вставляя его в тот же web.config:

<?xml version=»1.0″ encoding=»UTF-8″?>

<configuration> 

<system.webServer> 

   <R ewrite>    

  <rules>   

     <rule name=»Redirect to https» stopProcessing=»true»> 

         <match url=»(.*)» />  

        <conditions>     

       <add input=»{HTTPS}» pattern=»off» ignoreCase=»true» /> 

           <add input=»{HTTP_HOST}» pattern=»^domain.ru» />     

     </conditions>     

     <action type=»Redirect» url=»https://{HTTP_HOST}{REQUEST_URI}» redirectType=»Permanent» />   

     </rule>  

    </rules>

    </R ewrite> 

</system.webServer>

</configuration>

Когда редирект с https на http не работает — что делать?

Не всегда прописывание одного кода на разных сайтах срабатывает с полным успехом. Бывает, возникают ошибки по вине сервера, из-за бардака в конфигурационных файлах или элементарно сделана ошибка в командных строчках.

Когда 301 редирект с https на http не работает — пользуемся другими вариациями кода. В htaccess меняем предыдущий распространенный код на вот такой:

# Redirect HTTPS to HTTP

R ewriteCond %{HTTP:X-Forwarded-Proto} =https

R ewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Если не работает redirect 301 с http:// на https://, в .htaccess прописываем следующее:

R ewriteEngine On

R ewriteCond %{SERVER_PORT} !^443$

R ewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

В случае возникновения циклической реакции — корректируем под такой шаблон:

R ewriteEngine On

R ewriteCond %{HTTPS} off

R ewriteCond %{HTTP:X-Forwarded-Proto} !https

R ewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

301 moved permanently что это и как исправить

Что это за глава? Подумаете вы после прочтения всего того, что было описано выше. А я, в двух словах, поясню. Moved permanently в переводе означает «переехал навсегда». Некоторые вебмастера еще и краем уха не слышали о 301 Moved permanently, тем более о Permanent Redirect, то есть о постоянном редиректе, и ищут ответ, почему у них выбивает такую ошибку на странице. А теперь обращение к тем, кто искал, как исправить 301 moved permanently — начинайте читать статью сначала и находите свой конкретный случай для решения своих задач. А мы переходим к следующему этапу: коротко о том, что такое 302 редирект и зачем он нужен, если есть 301-й.

302 Редирект — временное переселение

Что такое 302 редирект и чем он отличается от 301? Исходя из названия, 302 Temporary redirect (временное перенаправлению) осмелюсь сказать, что этим редиректом мы можем временно перенаправлять робота и посетителей с одной страницы на другую. Сколько может длиться период временного перенаправления — это никем не указано, то есть догажываемся, что до момента, пока это перенаправление будет актуальным. Здесь хочеться уточнить, что после злоупотребления сеошниками временными перенаправлениями и введения санкций от поисковых систем к недобросовестным сайтам, крайне не рекомендуется делать 302 Redirect с одного домена на другой. То есть мы можем решать временные задачи только в пределах одного сайта.

Дорожные знаки олицетворяющие отличия

Чем отличается 302 Редирект от 301?

Какая особенность 302 Редиректа? Сравнивая его с 301 можно сказать, что постоянное перенаправление полностью передает весь вес сайта, включая ТИЦ, PR и фильтры, а также дает роботам понять, что страница, с которой идет 301 Редирект больше не нуждается в индексации. То есть из поиска она выпадает и заменяется второй. 302 Редирект ничего подобного не передает странице, на которую делается перенаправление, разве что вторая страница быстрее индексируется. А это означает для робота, что обе страницы доступны и должны присутствовать в поиске.

Для каких нужд используют 302 Redirect? Чаще всего для перенаправления на обновленные данные, пока на «редирекнутой» странице не будет обновлена информация или для придания акцента и большего внимания новой странице. Например, вместо страницы категории для выбора можно переадресовать посетителя сначала на акцию, а по его желанию он может по заметной ссылке перейти снова на страницу категории. Команды для создания 302 Temporary redirect не привожу, так это будет уже совсем иная статья. Пользуемся с умом.

Сервисы для контроля Редиректов

Конечно же, как же без сервисов для отслеживания редиректов на сайтах. За всем нужен глаз да глаз. Поэтому посоветую парочку вариантов для контроля.

Расширения для браузера, которые контролируют редиректы:

  • HttpFox для Mozilla;
  • HTTP Headers для Google Chrome.

С помощью этих инструментов можно отслеживать перенаправление по адресам, скорость и порядок загрузки страниц. Таким способом можно выявить циклическую цепочку, если она образовалась. На этом закругляю свои длинную статейку, надеюсь, мои советы вам помогут разобраться во всех основных тонкостях перенаправления ссылок.

Инструменты контроля

Понравилась статья? Поделить с друзьями:
  • Код статуса 1001 при обновлении на планшете как исправить
  • Код справочника стал неуникальным 1с при обновлении как исправить
  • Код состояния http 500 текст ошибки internal server error
  • Код состояния forbidden ошибка access denied яндекс маркет 1c
  • Код состояния 8c230002 на xbox 360 как исправить ошибку