Gaucho.pro SEO аудит и оптимизация сайтов на 100%

Как сделать 301 редирект

Как сделать 301 редирект
5 (100%) голосов 1

301 редирект (301 Permanent Redirect) – серверное перенаправление пользователей на другой URL адрес при смене адреса сайта или адреса страницы. Таким образом, при вводе старого адреса домена пользователь автоматически перенаправляется на новый адрес сайт.

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

Редирект с номером ошибки 301 (moved permanently) — наилучший способ сохранить рейтинг сайта в поисковых системах при переносе его на новый домен или смене системы управления контентом. Переадресацию можно выполнить несколькими способами, в зависимости от установленного программного обеспечения.

как сделать 301 редирект

Редирект со старой страницы на новую

Пример:
Redirect 301 /oldpage/ https://gaucho.pro/newpage

Где настраивается 301 редирект

Существует несколько наиболее часто используемых способов настройки 301 редиректов:

Через php условие. Когда браузер получает команду вместо одной страницы открыть вторую. Если сайт сделан на какой-то CMS, то есть вероятность того, что у неё есть функция редиректа с корня на файл index. В этом случае откройте index.php, который находится в корне движка и пропишите:

  • где первая строка указывает какой url-адрес должен перенаправлять, а вторая — на какой url-адрес должно выполняться перенаправление.
  • В конфигурационном файле, например в .htaccess. В таком случае редирект будет работать на уровне сервера и восприниматься как серверная команда.
  • 301 редирект в .htaccess

При использовании апача (apache) на сервере, переадресацию можно просто выполнить с помощью файла .htaccess, однако, при этом, не забыть включить модули mod_alias (для поддержки директив Redirect, RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini.

Редирект с помощью директивы Redirect или RedirectPermanent модуля mod_alias

Redirect 301 /old-page.html http://new-domain.ua/new-page.html

или

Redirect permanent /old-page.html http://new-domain.ua/new-page.html

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

RedirectPermanent /old-url.html http://new-site.ua/new-url.html

Редирект с помощью директивы RedirectMatch

Этот редирект подобен предыдущему, за исключением того, что можно задавать регулярное выражение для старых URL адресов. Допустим, при смене движка с PHP на ASP, можно старые адреса перенаправить следующим образом:

RedirectMatch /(.*).php$ /$1.aspx

Редирект с помощью директивы RewriteRule модуля mod_rewrite
Для использования директивы RewriteRule необходимо удостовериться, что в httpd.conf подключен модуль mod_rewrite, а также влючена опция FollowSymLinks. Использование реврайт модуля дает много возможностей для перенаправления страниц на новые адреса.

Редирект с http на https

Если вы решились переехать на защищенный протокол https, необходимо настроить редирект с помощью этих строк:

RewriteCond %{HTTPS} =of

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

или

RewriteCond %{HTTP:X-HTTPS} !1

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

Редирект с https на http

RewriteCond %{HTTPS} =on

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

Перенаправление домена с 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]

Редирект запросов с не-www на домен с www префиксом

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain.com$ [NC]

RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

или

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.(.*) [NC]

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

Редирект с помощью скрипта (отправки заголовков)

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

HTTP/1.1 301 Moved Permanently

Location: http://www.newdomain.ua/newdir/newpage.htm
ASP редирект

<%@ Language=VBScript %>

<% Response.Status=“301 Moved Permanently” Response.AddHeader “Location”, “http://www.new-url.com” response.end %>

ASP.NET редирект

ColdFusion редирект
<.cfheader statuscode=“301” statustext=“Moved permanently”>

<.cfheader name=“Location” value=“http://www.new-url.com”>

JSP (Java) редирект
<% response.setStatus(301); response.setHeader( “Location”, “http://www.new-url.com/” ); response.setHeader( “Connection”, “close” ); %>

CGI PERL
$q = new CGI;

print $q->redirect(“http://www.new-url.com/”);

Ruby on Rails
def old_action

headers[“Status”] = “301 Moved Permanently”

redirect_to “http://www.new-url.com/”

end

Осуществление редиректа в nginx
if ($host = ‘www.domain.com’ ) {

rewrite ^(.*)$ http://domain.com$1 permanent;

}

Некоторые особенности редиректов

  • Методы редиректа с .htaccess работают только на серверах c операционной системой Linux, с установленным сервером Apache с включенным модулем Mod-Rewrite;
  • Использование .htaccess создает дополнительную нагрузку на сервер Apache, более эффективно прописывать те же команды в его конфигурационном файле hpptd.conf, но, как правило, к нему нет доступа у вебмастера;
  • 301 редирект, позволяет сберечь трафик и передать PR страницы для поисковых систем;
  • процесс склейки и передачи PR занимает длительное времени – до нескольких месяцев и также зависит от поисковой системы, поэтому не удаляйте старую страницу или сайт, пока не произойдет окончательный перенос;
  • некоторые поисковые системы требуют для склейки сайтов дополнительных настроек, например, для Яндекса нужно дополнительно прописывать в robots.txt директиву host.
Scroll Up