Как сделать 301 редирект в .htaccess: переадресация страниц
Есть проблемы с ранжированием, проект не растет, хотите проверить работу своих специалистов по продвижению? Закажите профессиональный аудит в Семантике
Получи нашу книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».
Подпишись на рассылку и получи книгу в подарок!
В этой статье мне хотелось не только дать вам готовый код, но и разложить всё по полочкам, чтобы вы могли ориентироваться и в технической составляющей кода, и в условиях, когда стоит или не стоит его применять.
301 Permanent Redirect / 301 редирект…
… это переадресация пользователя на другой адрес страницы или домена. Этот код ответа сервера означает, что страница и ресурс переехали навсегда и теперь доступны в другому адресу.
Есть мифы, связанные с редиректами: например, что при редиректе не передаётся PR страницы, но этот миф был развенчан одним из вебмастеров Google Джоном Мюллером в своем блоге. Или что вместо 301 Moved Permanently редиректа можно использовать 302 Temporary Redirect.
Существует целый класс 3хх редиректов. Наиболее часто используются коды 301 и 302 — они как двойняшки, которые вроде бы и похожи, но всё-таки различаются. А для поискового робота это два совершенно разных человека, и трактуются такие ответы сервера по-разному:
- 301 Moved Permanently: постоянный редирект. Этот код уведомляет о том, что ресурс перемещен на новый адрес на постоянной основе с удалением прошлого домена. Нужен для окончательного переезда на новый ресурс, новую CMS или для склейки страниц.
- 302 Temporary Redirect: временный редирект. Уведомляет о временном переезде сайта или его страницы. Используется при технических работах на сайте.
Как эти коды отразятся на выдаче:
- При 301 редиректе в поисковой выдаче начинает отображаться новый URL, но это может занять некоторое время. Google советует сохранять статус страницы в течение года.
Из-за подобных ошибок вебмастеров и злоупотребления 302 редиректом в неэтичных целях SEO-специалисты очень не советуют использовать его на своём сайте, ведь даже за небольшое подозрение в черном SEO вы можете схлопотать серьезный штраф. Давайте лучше разберемся как можно настроить легальный 301 редирект в .htaccess
Файл .htaccess — это файл конфигурации HTTP-сервера, наподобие Apache. С его помощью задается большое количество дополнительный параметров и разрешений веб-сервера, распространяет свои права только на каталог, в котором располагается, и его дочерние подкаталоги.
Самый простой пример редиректа: с сайта на сайт
Redirect / www.example.com
www.example.com — сайт, на который мы перенаправляем запрос пользователя.
Чуть более сложный пример — если мы хотим сделать редирект со страниц нашего сайта на другой сайт. Или, например, сделать редирект на главную страницу.
Redirect /semantica semantica.in/
Redirect /semantica/blog semantica.in/blog
Redirect 301 /kernel semantica.in/
Что всё это значит:
1 строка — при обращении к странице www.example.com/semantica будет открываться сайт semantica.in/
2 строка — при обращении к http://www.example.com/semantica/blog будет открываться semantica.in/blog
3 строка — веб-сервер будет отдавать код 301 о постоянном переезде на новый URL
Теперь, когда вы примерно понимаете, как это работает, можно переходить на задачи посложнее.
Сложные редиректы
Для сложных редиректов существует модуль mod_rewrite — это средство преобразования URL-адресов, использующее регулярное выражение. Для редиректа используются три важные директивы: RewriteCond, RewriteRule и RewriteEngine.
- RewriteEngine включает или выключает работу механизма преобразования:
RewriteEngine on | off
Положение on-off включает и выключает работу модуля.
2. RewriteCond — определяет условие какого-либо правила, при котором происходит преобразование. Сразу после директивы чаще всего идут переменные %{HTTP_HOST} и %{REQUEST_URI}, которые означают адрес сервера (например, example.ru) и ресурс, запрошенный в строке HTTP-запроса, соответственно.
3. RewriteRule — идёт после одного или нескольких RewriteCond. Это правило преобразования URI, которое применяется только при условии выполнения RewriteCond.
Синтаксис директивы RewriteRule выглядит следующим образом:
RewriteRule Шаблон Подстановка [flag]
Здесь стоит дать пояснение к используемым символам регулярного выражения, которое задает шаблоны строк:
Метасимволы используются для задания групп символов и меток в шаблоне:
- ^ — метка начала строки,
- $ — метка конца строки,
- \ — экранирующий слеш, позволяет считать следующий за ним метасимвол обычным символом,
- . — точка, обозначает любой символ, но только один,
- () — группировка.
- ! — отрицание,
Флаги определяют дополнительные опции для данного правила и перечисляются в квадратных скобках через запятую:
- NC — (nocase) отключает проверку регистра символов.
- R — (redirect) останавливает процесс преобразования и возвращает результат браузеру клиента как редирект на данную страницу (302, MOVED TEMPORARY). С данным флагом можно указать другой код результата, например R=301 возвратит редирект с кодом 301 (MOVED PERMANENTLY).
- L — (last) останавливает процесс преобразования, и текущая ссылка считается окончательной.
Как сделать 301 редирект?
Теперь, зная эти правила, мы можем попытаться самостоятельно сделать редирект с помощью htaccess.
- Редирект .htaccess на другую страницу
Redirect 301 /old-post.html http://new-site.ru/new-post.html
- Редирект .htaccess с www на без www
RewriteEngine on RewriteCond %{HTTP_HOST} !^site.ru$ [NC] RewriteRule ^(.*)$ site.ru/$1 [R=301,L]
- Редирект .htaccess с без www на www
RewriteEngine on RewriteCond %{HTTP_HOST} !^www.site.ru$ [NC] RewriteRule ^(.*)$ www.site.ru/$1 [R=301,L]
где site.ru — ваше доменное имя.
- Редирект с index.php (html) на главную страницу
RewriteEngine on RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ $1 [R=301,L]
- Редирект со слешем на без слеша
RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteRule ^(.*)\/$ /$1 [R=301,L]
- Редирект со страниц без слеша на слеш
RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]
- Редирект всех страниц одного домена на главную другого домена
RewriteCond %{REQUEST_URI} (.*) RewriteRule ^(.*)$ http://site.ru/ [L,R=301]
- Редирект с http на https через. htaccess
RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
- Редирект с https на http
RewriteCond %{HTTPS} =on RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
- Избавление от дублей страниц
Если вы заметили, что к адресу основной страницы приклеивается что-то вроде &sa=123 456 или &crw=123 456 и подобное, просто замените буквенную часть в следующем коде
RewriteCond %{REQUEST_URI} ^(.*)\&sa= RewriteRule ^(.*)\&sa=(.*)$ $1 [R=301,L]
Пример: объясняем на пальцах
Как с помощью 301 редиректа сделать так, чтобы по запросу site.ru/category/art1/zapis/ в строке адреса было site.ru/zapis/, то есть /category/art1 вырезалась бы из строки, но после вырезания строки показывалось содержимое site.ru/category/art1/zapis/?
Легко:
RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^category/art1/zapis/$ http://%{HTTP_HOST}/zapis/ [R=301,L] RewriteRule ^zapis/$ /category/art1/zapis/ [L]
А теперь давайте подробнее разберем, что же тут написано и что вообще происходит.
Как известно mod_rewrit на apache постоянно просматривает список правил, пока URL можно хоть как-то изменить.
И не редко получаются бесконечные циклы.
Чтобы ограничить цикл выполнения правил одной итерацией, можно использовать конструкцию из первой строки. Она предает apache статус был ли выполнен редирект или нет и если да, то пропустить следующие правила. К слову, на nginx эта строка не нужна.
Вторая строка делает 301 редирект с www.site.ru/category/art1/zapis/ на www.site.ru/zapis/
Третья же строка говорит серверу, что если адрес вида www.site.ru/zapis/, то надо показывать то, что находится по адресу www.site.ru/category/art1/zapis/
Помните, что с великой силой редиректа приходит и великая ответственность, так что используйте полученный знания с умом.
- Принцип «от меньшему к большему»: располагайте редиректы от частных к более глобальны. Т. е. переадресация со страницы на страницу будет выше, чем переадресация с без www на www.
- Избегайте последовательных — двойных, тройных — редиректов. Один редирект перенаправляет пользователя только один раз.
- Проверьте HTTP заголовки и статусы ответа сервера, чтобы убедиться в правильности работы редиректа.
В заключении хотелось бы по пунктам огласить условиях при которых стоит и не стоит использовать .htaccess переадресацию.
Когда редирект необходим
- Вы переехали на другой домен: и вам логично не хочется потерять своих клиентов — настоящих и потенциальных, а также есть необходимость передать вес прошлого сайта на новый.
- Хотите склеить зеркала: у вас несколько доменных имён с разным написанием бренда и вы перенаправляете всех посетителей на основной сайт.
- Страница сменила свой адрес: структура вашего сайта была реорганизована и вы пытаетесь предотвратить возможный беспорядок.
- Хотите избавиться от дублей страниц или копии сайта: не стоит относится к дублям как чему-то безвредному и незначительному. С дублями вы теряете в весе и сдаете позиции конкурентам, а так же дублирование контента может привести к штрафам от поисковых систем.
В каких случаях не нужно использовать редирект?
- Вы временно переезжаете на новую страницу: для этого есть 302 и 307 код, это гарантия того, что не произойдёт склейки страниц и оригинальная страница не выпадет из поисковой выдачи.
- Вы переезжаете из-за проблем со старым доменом: если у вас есть баны, фильтры и штрафы, то при склейке к вам перейдет не только ТИЦ и PR, но и все беды, от которых вы бежали.
Как сделать 301 редирект через файл .htaccess
Всем привет! Сегодня на SEO-Mayak.com довольна сложная и интересная тема. Многие, почти все начинающие блогеры даже понятия не имеют, что такое 301 редирект. Я как-то уже касался этой темы в статье про дубли контента и теперь мы рассмотрим ее поподробней.
Что такое 301 редирект? Это специальный код, который возвращает сервер при обращении к определенному URL.
Что это значит? Это значит, что если вы набрали в адресной строке браузера определенный URL, то Вас перенаправят на новый адрес.
Для чего это все нужно? Возьмем пример из реальной жизни. Заходите вы по определенному адресу, а вам говорят — «А здесь теперь такие не живут! Они совсем своим имуществом переехали на другую улицу и вот Вам их новый адрес…» Согласитесь полезная информация? Я не зря сказал — «…со все своим имуществом» т.е они не чего не оставили на старом адресе. Это важно!
Если Ваш проект по какой-то причине переехал на новый адрес, то как раз 301 редирект подскажет поисковому роботу где Вас искать, причем Ваш сайт не потеряет вес и другие показатели при переезде.
Прописываем 301 редирект в файле .htaccess
Чтобы выполнить сие действие надо в файле .htaccess прописать следующее:
- Redirect 301 / http://новый сайт.ru
Где «/» означает, что все начиная с «головы» сайта включая все подкаталоги будет переадресовано на новый адрес.
Не забудьте сделать резервную копию сайта если вдруг что-то пойдет не так!
Теперь рассмотрим другую ситуацию. У меня есть 2 квартиры, а живу я лишь в одной. Ко мне приходят письма по другому адресу, звонит телефон, заходят разные люди и т.д. А я забыл повесить объявления, что нахожусь я вообще в другом месте. Забавная история! Получается я теряю собственные авторитет в глазах окружающих из-за своей забывчивости.
Из этого вывод. Надо непременно указать поисковому роботу точный адрес проекта, например: www.сайт.com или просто сайт.com потому, что это два разных адреса.
Как это осуществить смотрите на этом примере:
Перенаправление с www на без www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.сайт\.com$ [NC]
RewriteRule ^(.*)$ http://сайт.com/$1 [R=301,L]
Перенаправление с без www на с www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^сайт\.com$ [NC]
RewriteRule ^(.*)$ http://www.сайт.com/$1 [R=301,L]
Надо заметить, что если в файле .htaccess уже прописана строчка RewriteEngine On, то ее повторять уже не надо и не забудьте вписать свой домен.
Существует мнение, что с защищенного протокола https:// также надо перенапралять пользователей на основной протокол http:// Я даже обратился в службу поддержки своего хостинг провайдера с этим вопросом. На что мне ответили, что возможность перенаправления есть и для этого в файле .htaccess необходимо прописать следующее:
- RewriteEngine On
- RewriteCond %{SERVER_PORT} ^443$ [OR]
- RewriteCond %{HTTPS} =on
- RewriteRule ^(.*)$ http://ваш сайт.com/$1 [R=301,L]
Бывает такие случаи, что необходимо перенести только одну страницу при этом сохранить ее вес. Для этого в файле .htaccess прописываем:
- Redirect 301 /путь/пост.html http://новый сайт.com/пост.html
В этой статье я постарался описать самые распространенные случаи использования 301 редиректа, которые необходимо знать каждому веб-мастеру. На самом деле возможности 301 редиректа на этом не ограничиваются и в будущем я еще не раз буду возвращаться к этой теме, так что советую подписаться на обновления блога.
До встречи!
С уважением, Виталий Кириллов
30+ примеров настройки 301 редиректа в .htaccess
Популярные примеры правильной настройки 301 редиректа в файле .htaccess. Советы по добавлению редиректов.
Полезные советы
- Современные браузеры по умолчанию используют кеширование для редиректов. Чтобы проверить работу редиректа необходимо очистить кеш в браузере или использовать любой сторонний сервис по проверке кода ответа сервера.
- Нежелательно создавать цепочки редиректов. При медленной работе сервера это вызовет недовольство пользователя. Поисковые роботы также не любят последовательные редиректы — вес исходной страницы может не передаться.
- При составлении файла .htaccess простые директивы должны идти раньше сложных, которые распространяются на весь сайт. Такая компоновка будет более удобной при работе с файлом и поможет избежать путаницы.
Наиболее популярные правила
Приведенные примеры работают для серверов функционирующих на APACHE, для NGINX настройки в файле .htaccess работать не будут. В примерах используется %{QUERY} — так обозначается часть URL, которая следует после знака вопроса. Правила для редиректа срабатывают только при условии соответствия правилу указанному в редиректе.
При настройке правила редиректов в файле .htaccess все правила необходимо указывать после указанных двух строк, либо просто добавьте их:
Options +FollowSymLinks
RewriteEngine On
301 редирект все страниц без WWW на страницы с WWW
RewriteCond %{HTTP_HOST} ^mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://www.mysite.ru/$1 [R=301,L]
Обратный редирект со страниц с WWW на страницы без WWW
RewriteCond %{HTTP_HOST} ^www.mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]
301 редирект с одной страницы на другую
Redirect 301 /oldpage.html http://mysite.ru/newpage.html
Переадресация для разделов через RewriteRule
RewriteRule ^papka /papka-new/$1 [R=301,L]
301 редирект для страниц имеющих Get-параметры в URL
Для наглядности примера допустим адрес страницы имеет вид http://mysite.ru/catalog/index.php?IBLOCK_ID=5&SECTION_ID=15. Следующее правило будет делать переадресацию:
RewriteCond %{QUERY} ^IBLOCK_ID=5&SECTION_ID=15$ [NC]
RewriteRule ^catalog/index\.php$ /newcatalog/? [R=301,L]
Иногда необходимо настроить редирект для изменяющихся Get-параметров, например в текущем примере динамическим параметром будет SECTION_ID:
RewriteCond %{QUERY} ^IBLOCK_ID=5&SECTION_ID=(.*)$ [NC]
RewriteRule ^catalog/index\.php$ /newcatalog/? [R=301,L]
Переадресация со страниц без значения Get-параметра
Например адрес страницы имеет вид — http://mysite.ru/?addon, тогда редирект будет следующим:
RewriteCond %{QUERY} ^addon$ [NC]
RewriteRule ^$ /? [R=301,L]
Переадресация одного адреса, без вложенных адресов
Например довольно часто необходимо настроить переадресацию со страницы раздела http:/site.ru/razdel/, однако прочие страницы в данном разделе должны работать без редиректа, например страница http://mysite.ru/razdel/section.php?SECTION_ID=1. Для этого нужно добавить всего один символ — $.
RewriteRule ^razdel/$ http://mysite.ru/new-razdel/ [R=301,L]
Настройка кириллических доменов .РФ
Правила и логика работы с доменами на кириллице абсолютно такие же, единственным отличием является замена символов кириллицы на специальный код.
301 редирект с одного домена на другой
RewriteCond %{HTTP_HOST} ^oldmysite\.ru$ [NC]
RewriteRule ^(.*)$ http://newmysite.ru/$1 [R=301,L]
Правило для доменов .РФ
RewriteCond %{HTTP_HOST} ^xn-...\.xn--p1ai$ [NC] RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]
Редирект на папки со слешем на конце
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://mysite.ru/$1/ [L,R=301]
Редирект на папку без слеша — убираем слеш на конце
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ http://www.site.ru/$1 [R=301,L]
Переадресация с домена в папку другого сайта
RewriteCond %{HTTP_HOST} ^oldsite\.ru$ [NC]
RewriteRule ^(.*)$ http://newsite.ru/oldsite/ [R=301,L]
Редирект со всех страниц кроме определенной папки
Для примера возьмем в исключение папку панели администратора в CMS Bitrix
RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301]
RewriteRule ^(.*)$ http://mysite.ru/ [L,R=301]
Переадресация всех файлов папки на конкретный файл
RewriteRule ^papka(.*)$ /my-file.html [L,R=301]
Переадресация файлов папки на другой файл с исключением
RewriteRule ^papka/file.html /new-file.html [L,R=301]
RewriteRule ^papka(.*)$ /my-file.html [L,R=301]
Редирект замены расширений файлов — с html на php
RedirectMatch 301 (.*)\.html$ http://newsite.ru$1.php
Указываем порядок загрузки индексных файлов в корне
DirectoryIndex index.php index.html index.htm index.shtml
Редирект с index.php на корень сайта
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://mysite.ru/ [R=301,L]
Редирект всех индексных страниц на корень
RewriteRule ^(.*)index\.php$ http://mysite.ru/$1 [R=301,L]
Переадресация с поддомена на основной домен
RewriteCond %{HTTP_HOST} ^abc.mysite.ru$ [NC]
RewriteRule ^(.*)$ http://mysite.ru%{REQUEST_URI} [R=301,NC,L,QSA]
Редирект страницы из различных директорий
Если в разных папках сайта лежит файл с одинаковым названием, то настроить переадресацию этих файлов на один.
RewriteRule [^abc]/nash-file.php /nash-file.php [R=301,L]
Создаем ЧПУ-копию динамических страниц
Для страницы появится обычный URL без передачи Get-параметров.
RewriteRule ^catalog/okno/?$ /firma/okna/detail.php?ID=123 [NC,L]
Переадресация с 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
Для поисковых систем очень важно получать код ответа 404 для несуществующих страниц
ErrorDocument 404 /404-for-me.php
Особенности настройки
Следует помнить, что все правила выполняются в .htaccess в порядке следования их в файле, поэтому необходимо следить за очередностью правил.
Избегайте цепочек редиректов, когда от старой до новой страницы осуществляется посещение еще одной страницы. Цепочки переадресаций негативно влияют на доверие пользователей и поисковых систем.
Включение редиректа для определенных User Agent
Например редирект на мобильную версию для планшетов и смартфонов:
RewriteCond %{HTTP_USER_AGENT} (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada|windows\ phone) [NC]
RewriteRule (.*) http://m.mysite.ru/ [L,R=301]
Настройка редиректов для всех поисковых роботов
RewriteCond %{HTTP_USER_AGENT} !(accoona|ia_archiver|antabot|ask\ jeeves|baidu|dcpbot |eltaindexer|feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|grub-client|gulper|slurp|mihalism|msnbot|worldindexer |ooyyo|pagebull|scooter|w3c_validator|jigsaw|webalta|yahoofeedseeker |yahoo!\ slurp|mmcrawler|yandexbot|yandeximages |yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons |yandexdirect|yandexmetrika|yandexcatalog|yandexnews |yandeximageresizer) [NC]
RewriteRule (.*) http://no-rank-site.ru/ [L,R=301]
Синтаксис и символы
- . — Точка означает любой символ.
- [abc] — перечень символов, совпадающих с буквами a, b, или с.
- [^abc] — перечень символов, не входящих в диапазон. Условию соответствует любой символ, кроме a, b, с.
- * — предыдущий символ может повторяться 0 и более раз.
- [abc]* — найти символы из заданного набора идущие подряд.
- [^abc]* — обратная операция.
- .* — замена любого набора символов. «.*» — найти все подстроки между кавычками.
- ^ — обознает начало строки (при использовании в начале выражения).
- $ — конец строки.
- \w — буква, цифра или подчёркивание _.
- \d — любая цифра.
- \D — любой символ, кроме цифр.
- [0-9] — указание на любую цифру.
- [a-z] — указание на любую букву от a до z с нижним регистром.
- [A-Z] — указание на любую букву от A до Z с верхним регистром.
- [a-zA-Z] — любая буква от a до Z, регистр не важен.
- [a-Z] — тоже самое, только короче.
Флаги для доп. опций
- NC — NoCase отключает проверку регистра символов при срабатывании правила.
- R — Redirect останавливает изменение URL-адреса и возвращает результат. Самое популярное значение R=301, однако встречаются и другие для временных редиректов (302, MOVED TEMPORARY).
- L — Last останавливает создание URL-адреса и строка считается окончательной.
Как сделать 301 редирект в htaccess, как настроить
Привет. Вполне возможно, что многие из вас уже знают про то, как сделать 301 редирект и как его настроить. Но, как вы знаете, мой блог – это моя шпаргалка. Поэтому, я считаю, что не будет лишним написать этот пост и, когда потребуется, можно будет обращаться за данной информацией как мне, так и вам. Потому что все эти коды невозможно держать в голове, да и не нужно.
Что такое 301 редирект и где он может пригодится
301 редирект – это некое автоматическое перенаправление с одной страницы на другую, причем при этом редиректе передается все: вес страницы, тИЦ, PR, вес входящей ссылочной массы и прочее. То есть происходит склеивание старой страницы с новой. Пользователь, попавший на старую страницу, автоматически “перебросится” на новую.
Где может пригодится 301 редирект:
- Решили вы переехать на новый домен. В таком случае, наиболее безболезненно это можно сделать как раз с помощью данного вида перенаправления.
- Был у вас сайт на каком-нибудь движке (допустим, Joomla). Страницы имели адрес site.ru/?id=1245. На WordPress та же самая страница у вас выглядит так site.ru/rubrika/post.html. И, чтобы не потерять показатели старых страниц, необходимо сделать 301 редирект на новые страницы.
- Ваш сайт доступен по 2-м адресам, например с www и без www. В таком случае тоже нужно прописать 301 редирект.
- Контент на старой странице нужно перенести на новую страницу. Или, например, 3 маленьких статьи нужно объединить в одну большую. В подобных случаях тоже лучше перенести на 1 из 3-х URL, а на оставшихся двух прописать редирект 301.
Как сделать 301 редирект в htaccess
Я предпочитаю делать 301 редирект с помощью файла htaccess. При чем он существует не только на WordPress сайтах, поэтому данный метод перенаправления – универсальный. Файл .htaccess лежит в корне сайта:
Редактируется данный файл с помощью текстового редактора, лучше использовать Notepad++.
Внимание! Касается новичков: если вы не совсем уверены в своих действиях, обязательно, перед тем как делать изменения в файле htaccess, сделайте его резервную копию.
С WWW на без WWW (и наоборот)
Сайт должен быть доступным только по одному варианту: либо с WWW, либо без WWW. Неправильно, если сайт “отдается” по двум вариантам. Нужно оставить только один.
Если сайт молодой, выберите лучше без WWW, если же старенький, то лучше остановиться на том варианте, который проиндексирован. Бывает так, что в Яндексе проиндексировано с WWW, а в Google без WWW, в таком случае выберите тот вариант, который “вылез” в наиболее приоритетной поисковой системе для вас.
Поймите, www.site.ru и site.ru для поисковых систем это 2 разных сайта, поэтому должен быть доступен только 1 вариант! С WordPress обычно с этим проблем нет, там по умолчанию доступен только 1 вариант, а вот на других движках часто можно видеть, что сайт доступен и так, и так.
301 редирект с www на без www:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.(.*) [NC] RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
301 редирект с сайта без www на с www:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
С одной страницы на другую с помощью htaccess
При необходимости простановки 301 редиректа с одной страницы на другую, нужно прописать вот этот код в файле htaccess:
Redirect 301 /staraya-stranica.html http://site.ru/novaya-stranica.html
С index.php (index.html) на корень (главную страницу)
На некоторых движках можно встретить, что главная страница сайта также доступна по адресу: site.ru/index.php. Это неправильно. Нужно, чтобы данная страница отдавала 301 редирект на главную страницу, вот как это делается (не забываем переписывать “site” на свой домен).
Если c index.php:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://site/ [R=301,L]
Если с index.html:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://site/ [R=301,L]
С http на https:
Если вам нужно прописать 301 редирект с http на безопасный протокол httpS, используйте вот этот код:
RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
С одной категории (директории/папки) на другую
Бывает необходимость, когда все страницы определенной категории, нужно перенаправить по другому адресу, вот код:
RedirectMatch 301 ^/category-old/(.*) /category-new/$1
С одного домена на другой
Если вы вдруг переехали на новый домен, то нужно в htaccess старого домена прописать это:
RewriteEngine On RewriteCond %{HTTP_HOST} old-domen.ru RewriteRule (.*) http://new-domen.ru/$1 [R=301,L]
Также в robots.txt обязательно укажите в директиве host новый адрес сайта.
301 редирект на WordPress с помощью плагина Simple 301 Redirects
Если сайт клиента на WordPress и он сам хочет в некоторых местах прописать 301 редиректы, я ставлю плагин Simple 301 Redirects. Да и для новичков он хорошо подойдет. Плагин очень прост в использовании и все делается в привычной админке WordPress, поэтому данный способ может показаться кому-то более легким.
- Устанавливаем плагин Simple 301 Redirects.
- Захотим в админке “Параметры” -> “301 Redirects”:
- Там уже, как и в случае с файлом htaccess, нужно прописать старый URL (без домена) и новый с доменом:
- Также можно прописать редирект всех страниц в категории. То есть, допустим, было у нас /7-1-products/ и мы хотим сделать /products/, то просто сначала там же на странице плагина ставим галочку перед “Use Wildcards?”:
- И уже потом можно прописать подобное, используя “звездочку”:
- В итоге, все статьи, которые находились в начальной рубрике будут переадресовываться на новый вид категорий.
Вывод
После того, как пропишете 301 редирект, обязательно проверьте сайт на работоспособность. Одна маленькая ошибка может сделать весь ваш сайт недоступным. Обязательно перед изменениями файла htaccess делайте его резервные копии, ну либо пользуйтесь CTRL+Z, чтобы вернуть файл в исходное положение.
Еще: учтите, что вес по 301 редиректу передается не сразу. Да, в Google склейка происходит быстрее, но в Яндексе это все происходит медленно. Нужно ждать обычно от 1 до 3-х месяцев.
Не забудьте добавить данную страницу в закладки, пригодится. Ну и конечно же спасибо за ретвиты.
301 редирект в htaccess — все примеры и правила настройки
Ленар Амирханов
С 2008 года автор популярного в прошлом SEO-блога yavbloge.ru (в последние годы не обновляется). В 2011 году основал агентство интернет-рекламы …
Поделитесь статьёй с друзьями и коллегами
Файл .htaccess относится к числу конфигурационных, он служит для настройки серверов, работающих через Apache. Внесение изменений в этот файл по определенным правилам помогает настроить работу сайта.
Например, директива 301 отвечает за автоматическое перенаправление пользователя с одной страницы на другую.
Важно: в процессе изменения файла .htaccess и последующего сохранения нужно сохранять кодировку UTF-8 без специальных символов BOM. Для этого лучше всего создавать файл и редактировать его не в стандартном «Блокноте», а в специальных программах-редакторах, например, Notepad++.
При сохранении файла в название следует добавить формат «.htaccess», убрав расширение .txt.
Настройка редиректа 301 позволяет ускорить процесс автоматического перевода пользователя на нужную страницу, если старая по каким-то причинам неактуальна.
Общие правила настройки редиректа 301
- В списке правил редиректа простые переадресации отдельных страниц должны стоять выше, чем «общие» для всего сайта, такие как редирект с www на https.
- редирект должен быть один. Перенаправление пользователя или поискового бота делается только один раз, без промежуточных страниц.
- в верхних строках файла должны быть прописаны специальные команды Options +FollowSymLinks и RewriteEngine On (до обозначения всех правил редиректа)
- правила RewriteRule выполняются при помощи строки RewriteCond
- задавать дополнительные опции для применяемых правил можно, перечисляя их в квадратных скобках через запятые, например, [R=301,L]
- на хостинге необходимо подключить модули mod_alias (они позволяют поддерживать правила Redirect, RedirectPermanent и RedirectMatch).
Редирект в htaccess с одной страницы на другую
Redirect [status] /начальная_страница http://конечная_страница_полный_адрес
Это правило регулирует прямой переход с одной страницы на другую.
В поле status необходимо вписать код 301.
В поле «начальная страница» указывается не полный адрес домена, а относительный (URL после слэша «/»).
Конечная страница при этом прописывается полностью: название URL и протокола.
Пример простого редиректа
Redirect 301 /page1.php https://website.ru/page2.php
301 редирект с домена без www на домен www с префиксом
RewriteCond %{HTTP_HOST} ^webweb\.ru$ [NC]
RewriteRule ^(.*)$ http://www.webweb.ru/$1 [R=301,L]
301 редирект с www на домен без www
RewriteCond %{HTTP_HOST} ^www.webweb\.ru$ [NC]
RewriteRule ^(.*)$ http://webweb.ru/$1 [R=301,L]
Редирект для HTTPS-версии сайта
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://webweb.ru/$1 [R=301,L]
Редирект статических страниц
Redirect 301 /page1.php http://www.webweb.ru/page2.php
В новом адресе (страница переадресации) указывается URL полностью
301-редирект для страницы с GET параметрами
Со страниц, имеющих параметры GET, переадресация на новый адрес выглядит следующим образом:
http://www.webweb.ru/dir/index.php?IBLOCK_ID=2&SECTION_ID=222
RewriteCond %{QUERY_STRING} ^IBLOCK_ID=2&SECTION_ID=222$ [NC]
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]
Переадресация со страниц без заданных параметров
Для cтраницы, на которой параметры не заданы, например http://www.webweb.ru/?111 переадресация выполняется с помощью следующего правила:
RewriteCond %{QUERY_STRING} ^111$ [NC]
RewriteRule ^$ /? [R=301,L]
301 редирект для отдельных файлов из папки
Допустим, что необходимо переадресовать только страницу
http://www.webweb.ru/dir/
и оставить на месте страницу http://www.webweb.ru/dir/index.php?IBLOCK_ID=2, которая должна находиться на своем месте.
Для этого применяется правило со специальным символом $.
RewriteRule ^dir/$ http://www.webweb.ru/new-dir/ [R=301,L]
Переадресация страниц в зоне РФ
Адреса кириллических доменов, например, в зоне РФ подчиняются тем же правилам, что и URL, записанные латиницей, при этом кириллические символы заменяются альтернативной кодировкой на латинице.
Переадресация с одного домена на другой
RewriteCond %{HTTP_HOST} ^old-webweb\.ru$ [NC]
RewriteRule ^(.*)$ http://www.new-webweb.ru/$1 [R=301,L]
301 редирект папок, оканчивающихся на слэш
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.webweb.ru/$1/ [L,R=301]
301 редирект папок, не имеющих слэша
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ http://www.webweb.ru/$1 [R=301,L]
Переадресация со старого адреса на папку с новым адресом
RewriteCond %{HTTP_HOST} ^web-web\.ru$ [NC]
RewriteRule ^(.*)$ http://www.webweb.ru/web-web/ [R=301,L]
Переадресация полной папки на указанный файл
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.webweb.ru$1.php
Устранение дублей URL с HTTPS
RewriteCond %{HTTPS} «on»
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]
Перенос домена на протокол HTTPS
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://webweb.ru/$1 [R=301,L]
Путь к странице ошибки 404
ErrorDocument 404 /404-for-me.php
Важно: расположение строк в файле имеет значение. Все внесенные в файл правила выполняются в строгом соответствии с порядком их внесения.
То есть, чем выше строка, тем раньше выполняется правило, и наоборот.
301 редирект с автоматической генерацией кода
Самый простой способ не ошибиться с кодом редиректа — использовать автоматический генератор htaccess, например, Lenartools. Достаточно выбрать параметры перенаправления, например, со страницы с www на страницу без www, указать адрес, с которого требуется перенаправить поискового бота и пользователя, и нужный код будет сгенерирован автоматически, без мучительного мануального создания нужной комбинации.
Схема простая, понятная и не требующая даже простых навыков веб-мастеринга.
Вам понравилась статья? 9 1Редирект 301 через .htaccess — как правильно настроить
Редирект 301 — зачем он нужен? В процессе продвижения сайта может возникнуть ситуация, когда необходимо изменить url страницы. Причины тому могут быть разные: переезд на новый домен, склейка дублей страниц, или даже, не к ночи будут помянуты, санкции поисковых систем. Чтобы изменить url, используется перенаправление, правильно называющееся «301 Permanent Redirect».
Что такое 301 редирект?
301 redirect действует на постоянной основе, передает со старой страницы на новую ссылочный вес, ТИЦ сайта и PR. Также, если сайт находится в каталоге Яндекс или DMOZ, страниц нового сайта в нем, разумеется, не будет. Помимо этого, используется 301 редирект на другой сайт, и перенаправление с одной версии сайта на другую. В частности так избавляются от проблем при индексации, возникающих из-за дублирования страниц сайта.
Избавление от дублей страниц также называют канонизацией.
Как настроить 301 редирект
При использовании некоторых CMS (систем управления контентом, или «движков» сайта) редирект можно настроить при помощи специальных плагинов. Однако более распространена практика настройки 301 редиректа посредством внесения изменений в файл .htaссess.
Несколько примеров использования 301 редиректа
Cклеивания зеркал сайта
Для поисковой системы site.name и www.site.name – разные сайты. Один из них будет проиндексирован, второй же окажется дублем. Чтобы подобного не произошло, делают так называемое «склеивание» сайта. С сайта с «www» указывается перенаправление на сайт без «www». Это делается в файле .htaccess, с помощью следующей конструкции:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.vash-sait\.ru$ [NC] RewriteRule ^(.*)$ http://vash-sait.ru/$1 [R=301,L]
Если на начальном этапе этого не было сделано, и в индекс попала версия сайта с «www», стоит сделать обратное перенаправление.
RewriteEngine On RewriteCond %{HTTP_HOST} ^vash-sait\.ru$ [NC] RewriteRule ^(.*)$ http://www.vash-sait.ru/$1 [R=301,L]
Перенаправление на страницу с другим url
При использовании ЧПУ ссылок иногда возникает ситуация, когда url необходимо изменить, но исходная страница уже находится в индексе. Чтобы не потерять позиции и вес при изменении ссылки, стоит установить перенаправление с исходной ссылки с на измененную.
RewriteEngine On RewriteRule ^(.*)url.html$ http://vash-sait.ru/new-url.html [R=301,L]
Перенаправление на другой домен
В ситуации, когда необходимо сменить домен, это можно сделать без потерь позиций и веса. Для этого нужно установить 301 редирект со старого домена на новый.
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.staryy-sait\.ru$ [NC] RewriteRule ^(.*)$ http://novyy-sait.ru/$1 [L,R=301] RewriteCond %{HTTP_HOST} ^staryy-sait\.ru$ [NC] RewriteRule ^(.*)$ http://novyy-sait.ru/$1 [L,R=301]
Редирект алиасов на основной домен сайта
Если для сайта используется несколько доменов (алиасов), зарегистрированных в разных доменных зонах, то во избежание дублирования контента, нужно установить 301 редирект на основной домен.
RewriteEngine On RewriteCond %{HTTP_HOST} ^vash-sait.com$ [OR,NC] RewriteCond %{HTTP_HOST} ^www.vash-sait.com$ [NC] RewriteCond %{REQUEST_URI} !^/robots.* RewriteRule ^(.*)$ http://vash-sait.ru/$1 [R=301,L]
Убираем расширение с помощью 301 редиректа
Страницы, доступные по ссылкам с разными расширениями также признаются дублями. К примеру, есть страницы, с расширением .html и без него. Если вам нужно убрать его:
RewriteEngine on RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]
Перенаправление с index.php на главную
В некоторых случаях, главная страница сайта доступна по нескольким адресам одновременно. Это также негативно сказывается на продвижении, так как говорит о дублировании контента. Избавиться от этого можно, применив следующую конструкцию:
RewriteEngine On RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://vash-sait.ru/ [R=301,L]
Страницы, в url которых встречается слеш, и страницы, в которых этого символа нет, также могут быть признаны дублями. Следующим кодом устанавливается перенаправление со страниц без слэша на страницы со слэшем:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1 [R=301,L]
Редирект для url с параметрами
Если исходный адрес содержит какой-либо параметр (например, http://vash-sait.ru/articles.php?section=1. Параметр здесь «section=1» ), то перенаправляющая конструкция будет иметь следующий вид:
RewriteEngine On RewriteCond %{QUERY_STRING} section=1 RewriteRule ^index.php http://vash-sait.ru/articles.php? [R=301,L]
Полезное видео по теме:
Стоит ли использовать 301 редирект при санкциях поисковых систем
Бытует распространенное мнение, что при попадании сайта под санкции или, как их еще называют, фильтры поисковых систем, для выхода из-под них достаточно перенести сайт на другой домен, и настроить 301 редирект. К сожалению, это не совсем так. Когда-то перенаправление на новый домен действительно помогало спастись от фильтров. Однако уже при следующем обновлении алгоритмов это было учтено. Сайт действительно уходит из-под фильтра, но только на период одного-двух обновлений. В дальнейшем санкции, наложенные на сайт на старом домене, обязательно передадутся и новому, если не будет предпринято никаких мер.
Перенаправление с помощью 301 редиректа – действенный, удобный и полезный инструмент при оптимизации сайта, и устранении недоработок и ошибок на сайте. Тем не менее, использовать его нужно аккуратно. В том случае, если вы не вполне осознаете, какие последствия может понести за собой использование редиректа, для работ над сайтом лучше привлечь специалистов.
Настраиваем 301 редирект при помощи файла .htaccess
Автор Игорь Градов На чтение 5 мин.
Редирект – это способ переадресации пользователей и поисковых роботов на URL адрес, который отличается от первоначально запрошенного. Существует несколько видов переадресации, некоторые из которых приведены ниже.
301 Moved Permanently
301 – постоянный редирект, который указывает на то, что запрашиваемая страница находится по новому адресу, а старый нужно считать устаревшим. Такой вид редиректа передает 90-99% ссылочной массы на новый URL.
Канонизация или склейка домена
Для склейки домена с www на без www:
RewriteCond %{HTTP_HOST} ^www.site\.com$ [NC] RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]
Для склейки домена с без www на с www:
RewriteCond %{HTTP_HOST} ^site\.com$ [NC] RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]
Для правильного выбора метода склейки нужно рассмотреть такие факторы:
- У какого варианта выше индексация;
- У какого варианта выше позиции в выдаче;
- Канонизация слэша в конце адреса.
При создании проекта сайта нужно решить, использовать ли слэш в конце адреса. Для поисковых систем адреса вида:
- http://www.site.com/category1
- http://www.site.com/category1/
Являются разными URL. Поэтому когда решите, какого вида будут адреса у вас на сайте, нужно прописать такой код для того, чтобы убрать слэш в конце:
RewriteCond %{HTTP_HOST} (.*) RewriteCond %{REQUEST_URI} /$ [NC] RewriteRule ^(.*)(/)$ $1 [L,R=301]
или такой, чтобы добавить его:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/ [L,R=301]
Для редиректа 301 одной страницы на другую:
Redirect 301 /oldpage.html http://www.site.com/newpage.html
Чтобы убедиться, что при запросе любой версии главной страницы, к примеру: default.htm или index.html, будет произведен редирект на каноничную страницу http://www.site.com, нужно прописывать следующий код редиректа:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTP/ [NC] RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.site.com/$1 [L,R=301]
Редирект каталога
Если в адресе у вас отображается структура каталога, то при изменениях у вас будет менять и адрес. Поэтому нужно прописывать такой редирект:
RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2 [R=301,L]
Но бывает так, что адрес старого каталога отображается сразу после доменного имени, например www.site.com/old-catalog/. В этом случае используется такой код:
RewriteRule old-catalog /(.*) / old-catalog /$1 [R=301,L]
Редирект при изменении расширения файлов
При смене CMS обычно меняется только расширении файлов. Для канонизации страниц в этом случае нужно использовать код вида:
RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html
Редирект при появлении нескольких слэшей или тире
По разным причинам бывает, что в адресе появляются лишние слэши или тире, например www.site.com/catalog////page-1.html. Такие страницы нужно переадресовывать на адреса с одним слэшем www.site.com/catalog/page-1.html.
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2 [R=301,L]
Таким же образом убираются и лишние тире в адресе, например изменение www.site.com/catalog/page—1.html на www.site.com/catalog/page-1.html.
RewriteCond %{REQUEST_URI} ^(.*)—(.*)$ RewriteRule . %1-%2 [R=301,L]
.htaccess — лишние слэши после имени домена
- http://site.com//////catalog
Чтобы убрать все эти слэши так, чтобы было перенаправление на страницу без слэшей, т.е.
Нужно прописать:
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2 [R,L]
Генерация 301 редиректов
Если технических знаний для написания собственного кода не хватает, то есть специальные сервисы генерации всех основных редиректов:
Здесь вы можете, вставив свои данные, мгновенно получить нужный код. Поддерживаются редиректы для доменов, url адресов, каталогов.
Как проверить 301 редирект?
После внесения любых изменений в логическую часть редиректа, нужно проверять его работоспособность. Для мануальной проверки нужно:
- Проверить работает ли вообще сайт – зайти на его главную страницу;
- Побродить по сайту, его разделам и отдельным страницам.
Но есть и сервисы для автоматической проверки редиректа:
Правила использования 301 редиректа vs Canonical
Поисковая система Google устанавливает четкие правила, только при соблюдении которых, она будет верно трактовать ваши действия. Вот как буквально понимают поисковики 301 и Canonical:
- 301 редирект – данная страница является устаревшей, новая страница находится по адресу такому-то. Прошу удалить старую страницу из индекса, а новую проиндексировать и полностью передать на нее весь вес старой.
- Canonical – кроме этой версии страницы у меня есть еще и другие. Но ты, пожалуйста, индексируй только ту, на которой стоит Canonical. Другие версии будут лежать для того, чтобы их могли просматривать люди, но тебе включать их в индекс не нужно. Весь вес стоит передавать именно на страницу с Canonical.
Предпочтения по использованию редиректа 301
Обычно, это наиболее предпочтительный метод:
- Для отдельных страниц – если навсегда изменился ее адрес;
- Для доменов – если сайт будет находиться постоянно на новом домене;
- Для страниц 404 и страниц с контентом, который более не актуален. К примеру, при удалении товара из каталога можно сделать редирект на похожий по функциям товар или на страницу каталога с этим типом товаров.
Когда лучше не использовать редирект 301
- Если их реализация невозможна или она займет неоправданно много времени.
- Если контент дублируется на двух страницах, но обе они должны быть доступны пользователю ввиду некоторых отличий (к примеру, размера одежды).
- Если одна страницы имеет несколько URL (сортировка каталога по разным критериям).
- Для кросс-доменов, когда контент на двух адресах может дублироваться, но он должен быть на каждом из доменов.
Настройка постоянного перенаправления 301 в .htaccess
Постоянное перенаправление 301 в вашем файле .htaccess позволяет поисковым системам и другим пользователям узнать, что старая ссылка была заменена новой. Это рекомендуемый метод для направления трафика с существующей страницы.
Для разработчиков или системных администраторов, имеющих опыт работы с командной строкой, получите высокую доступность и рут-доступ для своего приложения, службы и веб-сайтов с помощью облачного VPS-хостинга
Некоторые распространенные варианты использования 301.htaccess перенаправление :
У вас есть возможность настроить перенаправления для домена в интерфейсе cPanel по одной ссылке за раз. Вы также можете добавить перенаправления вручную, напрямую изменив файл .htaccess .
Как перейти к файлу .htaccess
На сервере Linux вы должны использовать файл .htaccess , чтобы реализовать 301 редирект для ваших страниц.
Щелкните здесь, чтобы перейти к файлу .htaccess
- Войдите в свою cPanel.
- В разделе Files щелкните File Manager .
- Убедитесь, что Показать скрытые файлы выбран, щелкнув значок шестеренки в правом верхнем углу диспетчера файлов.
- Выберите вариант « Document Root для: » и выберите свой домен из раскрывающегося списка.
- Щелкните правой кнопкой мыши файл .htaccess и выберите Edit .
- Если ваш файл .htaccess еще не существовал на предыдущем шаге, нажмите New File в левом верхнем углу, назовите файл .htaccess и, наконец, установите каталог для создаваемого файла на / public_html / или в корень документа вашего сайта.
- У вас может появиться всплывающее диалоговое окно кодирования текстового редактора, вы можете просто щелкнуть Edit .
Перенаправить отдельные файлы
Для перенаправления отдельных файлов, например example.com/oldfile.htm на newfile.htm , вы можете использовать 301 редирект, например:
Перенаправить 301 / oldfile.htm /newfile.htm
Для перенаправления одного конкретного файла в другой домен, например example.com/oldfile.htm – example.net/newfile.htm :
Перенаправить 301 /oldfile.htm https://example.net/newfile.htm
Перенаправить старый домен на новый домен
Если у вас был старый домен, например example.com , и теперь вы решили, что действительно хотите использовать example.net для веб-сайта. Вы можете настроить перенаправление 301 для всего домена, чтобы старые ссылки на пример .(. *) $ https: // пример. нетто /1 доллар США [L, R = 301, NC] Поисковая система, такая как Google, увидит example.com и www.example.com как два отдельных веб-сайта. Они рекомендуют вам выбрать одну версию, которую вы хотите отображать в поисковых системах, и использование 301 редиректа является возможным вариантом. Если у вас есть много ссылок в Интернете, по которым люди переходят на ваш сайт, как, например, .(. *). php $ /$1.htm [R = 301, L] Теперь вы должны знать, как правильно настроить 301 постоянную переадресацию на своем веб-сайте, чтобы гарантировать, что поисковые системы и посетители, переходящие на ваш сайт по старым ссылкам, по-прежнему смогут перейти к вашему новому контенту. Сообщение навигации (@markwolters) Привет, Стивен, плагин имеет три варианта перенаправления: перенаправление WordPress 301, перенаправление Javascript и перенаправление .htaccess. По умолчанию перенаправление WordPress включено, поэтому сайт действительно перенаправляет на https. Параметр перенаправления .htaccess отключен по умолчанию, так как он может вызвать проблемы при некоторых настройках, например, когда в основной папке веб-сайта есть дочерний сайт, не имеющий сертификата SSL.Перенаправление .htaccess обычно является самым быстрым перенаправлением, поэтому, когда его можно включить, мы обычно рекомендуем это делать. Мы рекомендуем сделать резервную копию текущего файла .htaccess, чтобы его можно было восстановить в случае возникновения каких-либо проблем. Марка Спасибо за повтор, теперь я посмотрел и вижу, что перенаправления wordpress и javascript проверены по умолчанию, поэтому для обычного веб-сайта wordpress, какие были бы лучшие варианты, отключите ли вы перенаправление wordpress и javascript и просто включите на.htaccess или оставьте два других включенными, а также включите .htaccess? Очень признателен за совет, совсем не технический, просто пытаюсь понять лучший вариант использования… 🙂 (@markwolters) Привет, Стивен, , если ваш веб-сайт использует Apache в качестве веб-сервера (или связанный с ним веб-сервер, такой как Litespeed, который использует файл .htaccess), мы рекомендуем отключить параметры перенаправления WordPress и Javascript и включить.htaccess, так как он самый быстрый. Всегда создавайте резервную копию, чтобы вы могли быстро восстановить, если что-то пойдет не так. Марка Спасибо за быстрый ответ, да, я мало что знаю, но я знаю, что он работает на сервере apache, я отключу два других и включу только параметр .htaccess, еще раз спасибо… 🙂 извините за боль, но я просто отключил другие 2 параметра и включил только параметр .htaccess, и я получил следующее предупреждение в верхней части экрана: У вас в настройках не активен 301 редирект на https.Для SEO рекомендуется использовать 301 редирект. Вы можете включить 301 редирект в настройках. Просмотр страницы настроек И получил в настройках следующее: Правила перенаправления .htaccess, выбранные этим подключаемым модулем, не прошли проверку. Были протестированы следующие правила перенаправления: # BEGIN rlrssslReallySimpleSSL rsssl_version [2.5.25] … но перенаправление по-прежнему работает нормально, я просто игнорирую эти сообщения? еще раз спасибо… 🙂 Привет, я прочитал ваш форум поддержки на веб-сайте и добавил код в верхнюю часть моего .htaccess через ftp, сообщение изменилось на мы не можем писать в .htaccess, и сказал мне добавить код вручную, что я сделал, но хотя сообщение все еще читается, перенаправления 301 нет, это нормально, поскольку перенаправление все еще работает? спасибо (@markwolters) Привет, Стивен, возможно, плагин не может прочитать.htaccess и, следовательно, сообщение показывает. Вы можете дать мне адрес вашего сайта? Вы также можете заполнить запрос поддержки на https://really-simple-ssl.com/support/ с временными учетными данными WordPress и FTP, чтобы мы могли понять, в чем может быть проблема. Марка привет, адрес http://www.centrepointprint.co.uk, сейчас я добавлю тикет поддержки… 🙂 Apache .htaccess 301 редирект — это перенаправление на стороне сервера и постоянное перенаправление. Файл .htaccess — это файл конфигурации сервера Apache. .htacces Для каждого каталога используется файл s. Использование .htaccess файл снижает производительность сервера. .htaccess следует избегать
когда у вас есть доступ к основному файлу конфигурации сервера Apache HTTPD.конф. Веб-сайты виртуального хостинга обычно не имеют доступа к httpd.conf и должен использовать файл .htaccess . Этот ответ перенаправления 301 уведомляет поисковые системы о том, что на странице
навсегда перемещен со старого URL на новый URL. Поисковые системы
также перенесите старый URL-адрес страницы в новый URL-адрес. Добавьте этот код или создайте новый файл .htaccess на старой странице .html каталог. Постоянное перенаправление с old-page.html на new-page.html . .htaccess: Redirect 301 /old-page.html http://www.mydomain.com/new-page.html Постоянное перенаправление со всех страниц домена на newdomain.com . Файл .htaccess должен находиться в корневом каталоге старого веб-сайта. .htaccess: Перенаправление 301 / http: // www.newdomain.com/ Если вы загрузили файл .htaccess в old-page.html каталог и перенаправление не работает, обычно это означает, что файлы .htaccess не включены в файле конфигурации сервера Apache httpd.conf. Файл .htaccess можно включить, добавив файл httpd.conf сервера Apache. httpd.conf: Важно: этот параметр не рекомендуется, так как он замедляет работу сервера Apache. Если у вас есть разрешение на изменение файла httpd.conf , это
лучше добавить директиву Redirect в httpd.conf вместо файла .htaccess . Проверить, перезаписывать ли библиотеку модуля mod_rewrite.поэтому загружается сервером apache: $ apache2ctl -M Добавьте следующий код в файл httpd.conf. Если перезаписать библиотеку модуля mod_rewrite.so недоступно,
раскомментируйте первую строку, чтобы загрузить модуль перезаписи. httpd.conf: # LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so Не забудьте перезапустить сервер Apache после обновления httpd.conf: $ sudo /etc/init.d/apache2 перезапуск Force www. версия используемого домена
.htaccess — Как добавить код перенаправления 301 в htaccess
Переполнение стека
, Мне нужно включить 301 .htaccess Redirect
Участник плагина
отметка
RewriteEngine на
RewriteCond% {HTTPS}! = На [NC]
RewriteRule ^ (.*) $ https: //% {HTTP_HOST}% {REQUEST_URI} [R = 301, L]
# END rlrssslReallySimpleSSL .htaccess — перенаправление Apache .htaccess 301
.htaccess перенаправление
Перенаправление одного URL
Перенаправление всего домена
Включение конфигурации .htaccess
AllowOverride Все
httpd.conf перенаправление
<Каталог /srv/www/rapidtables.com/public_html/web/dev/redirect>
Перенаправить 301 / старую страницу.html http://www.mydomain.com/new-page.html
См. Также
,