Seo блог

301 редирект

Редирект — это серверное перенаправление юзера на другой адрес сайта, а точнее URL страницу, отличающуюся от запрошенной ранее.

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

Содержание:

1 Где настраивается 301 редирект? .htaccess
2 Настройка через php
3 Редирект через JavaScript
4 Редирект через html с помощью meta
5 Редирект через JQuery
6 Почему могут не работають редиректы?

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

Первый способ это через файл .htaccess, который находиться в корневой папки вашего сайта и будет работать на серверном уровне. Этот способ является лучшим и наиболее часто использованным

Будьте внимательные некоторие редирект прописан с https , если же сайт на http нужно сменить в редиректе все https на http (там где нужно заменять, я буду выделять красным цветом)

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

301 редирект

Redirect 301 /page-1/  https://domain.com/page-2/

еще один вариант

RewriteCond %{REQUEST_URI} ^/page-1/$
RewriteRule ^.*$ https://domain.com/page-2/? [R=301,L]

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

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

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

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

301 редирект со страниц со слешем на без слеша

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

301 редирект со страниц без слеша на слеш

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

Редирект 301 с страницы с .html на страницу без .html

RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

Редирект 301 с страницы без .html на страницу с .html

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

301 редирект со всех страниц одного домена на главную другого домена

RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ https://domain.com/ [L,R=301]

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

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

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

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

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

2-й вариант

RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteRule ^(.*)$ https://%{SERVER_NAME}/%{REQUEST_URI}$1 [L,R]

3-й вариант

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

4-й вариант

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

301 редирект с index.html и index.php на главную страницу (убираем дубли главной)

с index.html

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ https://domain.com/ [R=301,L]

с index.php

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://domain.com/ [R=301,L]

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

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

301 редирект каталога

301 редирект с каталога

RewriteRule ^(.*)/catalog-1/(.*)$ $1/catalog-2/$2 [R=301,L]

или если каталог находиться сразу после домена

RewriteRule catalog-1 /(.*) / catalog-2 /$1 [R=301,L]

301 редирект со всех файлов домена, кроме файла 1 в папке old

RewriteRule ^old/ /old/1/ [L,R=301]
RewriteRule ^(.*)$ https://domain.com/new/ [L,R=301]

301 убираем .html и .php из url

убираем .html

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]

убираем .php

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

301 редирект с php на папку

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://domain.com/ [R=301,L]

301 смена страниц с html расширения на php расширение

RedirectMatch 301 (.*)\.html$ https://domain.com$1.php

301 редирект в URL с подчеркивания в дефис

RewriteRule ^(.+)(\s|_)(.+)$ /$1-$3 [R=301,L]

301 редирект со всех файлов .htm на .html

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.htm$ $1.html [R=301,L]

301 редирект для отдельного IP

RewriteCond %{REMOTE_ADDR} 123.123.123.123
RewriteRule ^(.*)$ https://domain.com [R=301,L]

Редирект в URL с больших символов на маленькие

RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1]
RewriteRule ![A-Z] - [S=28]

RewriteRule ^([^A]*)A(.*)$ $1a$2
RewriteRule ^([^B]*)B(.*)$ $1b$2
RewriteRule ^([^C]*)C(.*)$ $1c$2
RewriteRule ^([^D]*)D(.*)$ $1d$2
RewriteRule ^([^E]*)E(.*)$ $1e$2
RewriteRule ^([^F]*)F(.*)$ $1f$2
RewriteRule ^([^G]*)G(.*)$ $1g$2
RewriteRule ^([^H]*)H(.*)$ $1h$2
RewriteRule ^([^I]*)I(.*)$ $1i$2
RewriteRule ^([^J]*)J(.*)$ $1j$2
RewriteRule ^([^K]*)K(.*)$ $1k$2
RewriteRule ^([^L]*)L(.*)$ $1l$2
RewriteRule ^([^M]*)M(.*)$ $1m$2
RewriteRule ^([^N]*)N(.*)$ $1n$2
RewriteRule ^([^O]*)O(.*)$ $1o$2
RewriteRule ^([^P]*)P(.*)$ $1p$2
RewriteRule ^([^Q]*)Q(.*)$ $1q$2
RewriteRule ^([^R]*)R(.*)$ $1r$2
RewriteRule ^([^S]*)S(.*)$ $1s$2
RewriteRule ^([^T]*)T(.*)$ $1t$2
RewriteRule ^([^U]*)U(.*)$ $1u$2
RewriteRule ^([^V]*)V(.*)$ $1v$2
RewriteRule ^([^W]*)W(.*)$ $1w$2
RewriteRule ^([^X]*)X(.*)$ $1x$2
RewriteRule ^([^Y]*)Y(.*)$ $1y$2
RewriteRule ^([^Z]*)Z(.*)$ $1z$2

RewriteRule [A-Z] - [N]

RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 [R=301,L]

301 редирект с пробелов на без пробелов

RewriteCond %{REQUEST_URI} ^/what\ we\ do.htm$
RewriteRule ^.*$ https://site/new.htm? [R=301,L]

Пример: https://zhelepa.com/what we do.htm будет перенаправлять на https://zhelepa.com/what-we-do.htm

Редирект на мобильную версию сайта m.site.com

301 редирект с мобильной версии сайта

RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android) [NC]
RewriteRule ^$ http://m.%1 [R=302,L]

Настройка 301 редиректа через php

Через php, у которого имеется отличная функция header, которая поможет в замене заголовка или же создании нового.

header( 'Location: https://domain.com/', true, 301 ); 

301 редирект через JavaScript

Редирект через JavaScript, который имеет функции для осуществления редиректов.

<script language="javascript" type="text/javascript">
document.location="domain.com";

или

<script language="javascript" type="text/javascript">
location.replace("domain.com/");


301 редирект через html с помощью meta

<meta http-equiv="refresh" content="1; domain.com/">

301 редирект через JQuery

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">

Почему могут не работать редиректы

Ниже я опишу по пунктам самые распространенные ошибки связанные с настройкой редиректов

Циклическая переадресация

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

301

Похожая проблема со слешами и без, когда стоит в .htaccess два перенаправления один со слеша на без, а второй с без слеша на слеш.

Перестала работать админка

Еще одной проблемой является, когда вебмастер настраивает перенаправления у него потом не выходит в админку и выбивает 404 ошибку или же редиректит на главную страницу. Это происходит из-за редиректа без слеша на слеш (/)

Решение: Нужно добавить в конце адреса /index.php и тогда можно будет зайти в админ панель сайта.(Работает для любого движка сайта)

Пример для джумлы:

было: domain.com/administrator/

стало: domain.com/administrator/index.php

[Всего голосов: 2    Средний: 5/5]