Редирект с одной страницы на другую htaccess – 301 .htaccess . Redirect, RewriteRule RewriteCond

Содержание

301 редирект на все случаи жизни с помощью .htaccess

Советы

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

Старайтесь не делать редирект на страницу ответ которой отличен от кода 200. Т.е. редирект должен переадресовывать на существующую страницу с 200 ответом сервера.

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

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

Используется когда страница переехала с одного URL на другой. Например старый URL страницы /page-1/ необходимо сделать 301 редирект на URL http://mysite.com/new-page-1/

Redirect 301 /page-1/ http://mysite.com/new-page-1/

или

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

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

301 редирект домена с www на без www так же называется канонизацией домена или склейкой. Например делаем редирект с http://www.mysite.com на http://mysite.com, т.о. главное зеркало сайта это http://mysite.com

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

или

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

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

Также как и в случае описанным выше это еще называется канонизацией домена или его склейкой. Например 301 редирект с домена http://mysite.com на домен http://www.mysite.com, т.е. главное зеркало это www.mysite.com

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

или

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

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

Часто бывает так что одна и та же страница доступна по двум URL, например /may-best-page и /my-best-page/, если человеку понятно что это одна и та же страница, то поисковые системы понимают это как две разные страницы, соответственно разбивают вес страницы, а также показываются в аналитике (статистике) как 2 разные страницы. Для того, что бы избежать этого вы можете сделать 301 редирект со страниц со слешем в конце URL на без него.

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

Такой редирект будет работать следующим образом:

Запрос (URL) Редирект (URL)
http://mysite/page/ http://mysite/page
http://mysite/page/?value=1 http://mysite/page?value=1
http://mysite/page.html/ http://mysite/page.html
http://mysite/page?value=1/ http://mysite/page?value=1
http://mysite/page без редиректа
http://mysite/page.html без редиректа
http://mysite/page?value=1 без редиректа

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

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

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

Пример работы редиректа:

Запрос (URL) Редирект (URL)
http://mysite/page http://mysite/page/
http://mysite/page.html http://mysite/page.html
http://mysite/page?value=1 http://mysite/page/?value=1
http://mysite/page/ без редиректа
http://mysite/page/?value=1 без редиректа

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

К примеру вам необходимо сделать 301 редирект с любого URL текущего сайт (к которому относиться .htaccess) на домен http://mysite.com

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

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

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

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

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

Если у вас на сайте есть SSL сертификат и работает протокол https, то для 301-го редиректа вам необходимо добавить в .htaccess следующий код:

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

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

И обратный пример, если у вас нет SSL сертификата и протокол https не работает:

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

Удаляем несколько слешей подряд в URL и делаем 301 редирект

Если по случайности у вас появились URL такого вида: mysite.com/page///my-page, то можно сделать 301-й редирект без дублирования слешей:

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

Удаляем подряд несколько тире (дефисов) и делаем 301 редирект

Как в ситуации с повторяющимися слешами в URL может появиться несколько тире или дефисов, для 301-го редиректа с их удалением добавляем код:

RewriteCond %{REQUEST_URI} ^(.*)--(.*)$
RewriteRule . %1-%2 [R=301,L]

Вырезать из URL index.php

Пример без GET параметров, например с mysite.com/index.php на mysite.com/

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

Пример с GET параметрами, например с mysite.com/index.php?value=1&p=3 на mysite.com/?value=1&p=3

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

Несколько примеров совмещения 2-х редиректов в один

Для избежания последовательных редиректов можно использовать совмещенные варианты.

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

Комбинируем 301 редирект с www на домен без www и 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]

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

Комбинируем 301 редирект с домена без www на домен с www и 301 редирект со страниц без слеша на страницы со слешем в конце URL

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 на с www и без слеша в конце URL

Комбинируем 301 редирект с домена без www на домен с www и 301 редирект со страниц со слешем на страницы без слеша в конце URL

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 на без www и без слеша в конце URL

Комбинируем 301 редирект с www на домен без www и 301 редирект со страниц со слешем на страницы без слеша в конце URL

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]

xn--d1acnqm.xn--j1amh

Как сделать редирект: обзор способов

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

Редирект работает как регулировщик: направляет посетителей сайта и роботов на нужные страницы

Что такое редиректы и зачем они нужны

Редирект — перенаправление пользователя с одного URL на другой. Например, при переходе по ссылке http://texterra.ru/blog/ браузер автоматически перенаправляет пользователя на URL https://texterra.ru/blog/.

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

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

Вот примеры использования редиректов:

  • Перенаправление с http на https. Пример указан выше.
  • Перенаправление с URL с www на URL без www и наоборот. При переходе по ссылке https://tinkoff.ru браузер перенаправляет пользователя на https://www.tinkoff.ru. При переходе по ссылке https://www.vc.ru браузер перенаправляет посетителя на https://vc.ru/.
  • Переезд сайта на другой домен. Пару лет назад коллеги из популярного издания отказались от названия «Цукерберг позвонит» и настроили редирект с адреса http://siliconrus.com на https://vc.ru/.
  • Перенаправление трафика с одной страницы сайта на другую. Например, если в интернет-магазине нет какого-то товара, он может перенаправить трафик на страницу похожего продукта.
  • Перенаправление пользователей на мобильную версию сайта. Если владелец ресурса использует для адаптации к мобильному трафику только мобильную версию сайта, он настраивает редирект мобильных пользователей с www.example.au на www.m.example.au.

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

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

Для пользователя все редиректы одинаковы: при попытке перейти по одному URL они попадают на другой URL. Обычно интернет-серферы даже не замечают, что браузер перенаправил их с одного адреса на другой.

Браузеры и роботы поисковых систем определяют вид редиректа по коду состояния HTTP. Перенаправления могут иметь разный HTTP-статус: 301, 302, 303, 307. Рассмотрим каждый подробнее.

SMM-специалист от TexTerra

Редирект 301

Это самый распространенный вид перенаправления. HTTP-статус 301 значит, что ресурс навсегда перемещен с запрошенного URL на новый. После получения ответа 301 браузер делает новый запрос и перенаправляет пользователя на актуальную страницу.

301 Moved Permanently: ищите хозяев по новому адресу

Если вы используете редирект 301, авторитет и ссылочный профиль старой страницы передаются на новую. Например, не бойтесь потерять вес входящих ссылок при переводе сайта на безопасный протокол соединения. Корректный редирект 301 с http на https сохраняет эту характеристику ресурса и его конкретных страниц.

Редирект 302

В HTTP 1.0 статус 302 использовался для обозначения временного перемещения запрошенного ресурса на новый адрес. В HTTP 1.1 редирект 302 обозначает статус «Найдено» или Found. То есть ресурс существует, но владелец на некоторое время переместил его на новый адрес. Редирект 302 не передает авторитет и ссылочный профиль донора акцептору.

В HTTP 1.1 для временного перенаправления предложены редиректы 303 и 307. Это связано с некорректной обработкой статуса 302 в некоторых браузерах.

По стандартам HTTP 1.0 браузер после получения ответа 302 должен использовать для нового запроса метод POST. Разработчики некоторых браузеров не соблюдают этот стандарт и используют для нового запроса метод GET. В HTTP 1.1. эту проблему решают редиректы 303 и 307.

Вместо 302 для временного перенаправления лучше использовать редиректы 303 и 307.

Редиректы 303 и 307

В HTTP 1.1 статус 303 предложен вместо редиректа 302. Значение кода – See Other или «Смотрите другой ресурс». Для нового запроса браузер должен использовать метод GET. Применяйте редирект 303, когда у вас нет адекватного ответа на запрос пользователя, но имеется более или менее подходящая замена.

Редирект 303 подходит, когда на целевой странице есть формы. В этом случае важно, чтобы браузер делал запрос безопасным методом GET.

Статус 307 также используется вместо редиректа 302. Значение кода – Temporary Redirect или «временное перенаправление». Браузер не должен менять метод нового запроса. Запросы безопасными методами GET и HEAD выполняются автоматически. Запросы небезопасными методами, например, POST, выполняются с подтверждением пользователя.

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

Промежуточный вывод: в большинстве случаев владельцам сайтов подходит редирект 301. В этом случае HTTP-статус уведомляет поисковых роботов, что документ навсегда перемещен на новый адрес. Этот вид редиректа передает авторитет и ссылочную массу со страницы-донора на страницу-акцептор. Редиректы 303 и 307 используются, когда владелец сайта хочет временно перенаправлять пользователей с одного документа на другой.

Чек-лист по оптимизации сайта, или 100+ причин не хоронить SEO

Какие типы редиректов бывают

Редиректы классифицируются по способу реализации. Настроить перенаправление можно через файл .htaccess или nginx.config, средствами PHP, HTML, JavaScript. Подробнее о каждом типе ниже.

Что такое htaccess-редирект

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

Чтобы настроить перенаправление, внесите изменения в файл .htaccess. Для доступа к файлу воспользуйтесь FTP-клиентом, например, FileZilla. В настройках программы в меню «Сервер» включите принудительное отображение скрытых файлов. Файл .htaccess находится в папке с названием доменного имени ресурса в каталоге public_html.

Ищем файл .htaccess

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

Отредактированный файл нужно загрузит на сервер

В интерфейсе FTP-клиента FileZilla слева доступны файлы и папки локального компьютера, а справа — файлы и папки удаленного сервера.

Справа сервер, слева локальный компьютер

Также доступ к файлу .htaccess можно получить через панель управления хостингом. В cPanel откройте раздел интерфейса «Файлы – Диспетчер файлов».

Открываем диспетчер файлов панели управления хостингом cPanel

В настройках диспетчера включите отображение скрытых файлов.

Включаем отображение скрытых файлов

Скачайте файл на компьютер и отредактируйте. Также файл можно редактировать через cPanel.

Загружаем файл на жесткий диск или редактируем непосредственно через панель управления сервером

Чтобы отредактировать файл .htaccess, откройте его в блокноте. Добавьте код редиректа. Сохраните изменения и загрузите файл на сервер.

Добавляем в файл .htaccess код редиректа с http на https

О коде редиректов и настройках конкретных перенаправлений пойдет речь ниже.

Чтобы настроить редирект на сервере под управлением Nginx, нужно добавить код перенаправления в конфигурационный файл nginx.conf. Код добавляется в блоке server. Получить код редиректа можно с помощью конвертера.

PHP-редиректы

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

Например, если на сайте есть десятки страниц, для которых нужно прописать редирект, а также десятки страниц, для которых редирект не нужен, лучше настраивать перенаправления с помощью PHP.

Скачайте на жесткий диск файл index.php или откройте его для редактирования в диспетчере файлов панели управления хостингом. Файл находится в корневой папке сайта. Там же находится файл .htaccess.

Находим файл index.php и загружаем его на жесткий диск

Добавьте в файл index.php код редиректа. Сохраните изменения и загрузите файл на сервер.

Добавляем код перенаправления в файл index.php

JavaScript-редирект

Редирект с помощью кода JavaScript выполняется на стороне браузера, а не на стороне сервера. Чтобы посетитель попал со старой страницы на новую, скрипт редиректа должен полностью загрузиться в обозревателе. Поэтому JavaScript-редирект – более медленный способ перенаправления, чем серверные редиректы. Еще одна проблема — автоматическое перенаправление не сработает, если пользователь отключил в браузере JavaScript.

Тем не менее JavaScript-редиректы в некоторых случаях удобны. Например, их можно использовать для перенаправления с задержкой. Вы можете написать на старой странице сообщение вроде «Мы переехали на новый сайт, сейчас вы будете автоматически туда перенаправлены». Через несколько секунд пользователь автоматически попадет на новую страницу.

Чтобы реализовать перенаправление с помощью JavaScript, добавьте код редиректа между тегами <head> и </head> страницы, с которой нужно перенаправить пользователей. На сайтах под управлением WordPress это можно сделать с помощью бесплатного плагина Per page add to head.

Настраиваем редирект на главную с задержкой 1,5 секунды

Сохраните изменения на странице и проверьте, как работает редирект.

Браузер перенаправляет пользователя с внутренней на главную страницу с задержкой 1,5 секунды

HTML-редирект

Этот тип перенаправления также работает на стороне браузера. Чтобы перенаправление сработало, обозреватель должен загрузить соответствующий HTML-код: метатег refresh. Поэтому этот тип редиректов работает медленнее перенаправлений на уровне сервера.

Чтобы реализовать редирект, добавьте код между тегами <head> и </head> страницы, с которой хотите перенаправить трафик.

Добавляем код редиректа в хедер страницы

Сохраните изменения и проверьте, как работает перенаправление.

Промежуточный итог: предпочитайте серверные редиректы, так как они удобнее для пользователей. В большинстве случаев перенаправление лучше настраивать через конфигурационный файл .htaccess для серверов на Apache и nginx.config для серверов на Nginx.

Как составить грамотное техзадание на разработку сайта

Где взять код редиректа

Если у вас нет соответствующей подготовки и знаний, есть два варианта. Можно обратиться к специалисту или воспользоваться онлайн-генератором кода. Подборка сервисов ниже сэкономит вам время и деньги:

  • 301 Redirect Code Generator. Генерирует код редиректа для Apache, ASP и ASP.NET. Также создает код JavaScript и HTML-перенаправлений.
  • Seomagnifier. Создает код редиректа 301 с домена с www на домен без www и наоборот.
  • 301 Redirect Code Generator Tool. Создает редиректы со страницы на страницу, а также с домена без www на домен с www. Генерирует PHP-код, перенаправления для серверов на ASP и ASP.NET, HTML- и JavaScript-перенаправления.
  • Генератор файла .htaccess. Создает код редиректов со страницы на страницу, а также между разделами сайта, генерирует скрипты перенаправлений с домена с www на домен без www.
  • Универсальный генератор кода перенаправлений для .htaccess. Можно выбрать сценарий редиректа, указать URL и сгенерировать код.
  • Генератор редиректов 301. Создает код перенаправлений для серверов на Apache, ASP, ASP.NET, а также код HTML- и JavaScript-редиректов.
  • Генератор перенаправлений от Brontobytes. Поможет настроить редирект со старого домена на новый, изменить адрес отдельных страниц и разделов ресурса, настроить перенаправление с домена без www на домен с www.
  • Пользователям серверов на Nginx будет полезен конвертер кода. Он трансформирует редиректы для .htaccess в перенаправления для nginx.config.

Как делать редиректы: популярные примеры

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

Как сделать редирект с http на https

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

  1. Скачайте конфигурационный файл на жесткий диск или откройте его для редактирования в панели управления хостингом.
  2. Сгенерируйте код редиректа с помощью одного из предложенных выше сервисов.
  3. Добавьте код в файл, сохраните изменения и загрузите .htaccess на сервер.
Добавляем код редиректа с http на https в файл .htaccess

Корректно перевести сайт на безопасный протокол помогут следующие ресурсы:

Я работаю с такими настройками Really Simple SSL

Как сделать редирект с или на www

Подробную инструкцию по перенаправлению с домена без www на домен без www через файл .htaccess читайте в статье о зеркалах сайтов. Если хотите, выполните этот же редирект с помощью php. Действуйте так:

  1. Загрузите на жесткий диск файл index.php.
  2. Сгенерируйте код редиректа.
  3. Вставьте код в файл, сохраните изменения и загрузите index.php на сервер.
  4. Укажите основной URL в настройках сайта. В WordPress это можно сделать в меню «Настройки – Общие».
Добавляем код редиректа в файл index.php

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

Проверьте, как работает перенаправление. На иллюстрации ниже видно, что до настройки редиректа сайт был доступен по двум URL. После изменения файла index.php ресурс доступен по одному адресу.

После настройки php-редиректа сайт доступен только по URL без www

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

Чтобы настроить редирект с одной страницы на другую, отредактируйте файл .htaccess или index.php: добавьте в него сгенерированный код редиректа. Если сайт работает на WordPress, воспользуйтесь для настройки редиректов плагинами:

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

Перенаправления можно настраивать через панель управления сервером. В cPanel настройки доступны в разделе «Домены – Перенаправления». Инструкцию смотрите в статье о зеркалах сайтов.

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

При переезде на новый домен перенаправление настраивается так же, как редиректы с http на https или с домена с www на домен без www. Изменения можно внести через файл .htaccess или index.php.

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

Генерируем код постраничного редиректа

Добавьте код в файл .htaccess и сохраните изменения.

После загрузки файла на сервер заработает переадресация

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

Редирект папки (каталога, директории) можно настроить с помощью файлов .htaccess или index.php. Настройка перенаправлений может понадобиться, если в URL страниц отображаются названия директорий.

Например, в блоге о книгах URL может выглядеть так: https://exampleblog.ru/klassica/idiot. Автор создает отдельный каталог для русской классики и хочет, чтобы URL выглядел так: https://exampleblog.ru/russkaya-klassica/idiot. В .htaccess нужно добавить такой код:

RedirectMatch 301 ^/klassica/(.*)$ /russkaya-klassica/$1

Частные случаи: редирект слэша и редирект расширения

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

Сгенерируйте код редиректа и добавьте его в файл .htaccess. Убедитесь, что отметили галочкой нужную опцию.

Получаем код редиректа на страницу со слэшем

Чтобы настроить перенаправления с адреса с расширением на адрес без расширения, сгенерируйте код и добавьте его в конфигурационный файл. Редирект с URL с расширением .html на URL с расширением .php выглядит так:

RewriteEngine on

RewriteRule index\.html index.php [NC,R]

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

Как проверить редирект

Проверить редирект можно в браузере. Почистите кэш или откройте обозреватель в режиме инкогнито и введите нужный URL. Также проверять перенаправления можно с помощью веб-сервисов:

Чекеры показывают вид редиректа и статус ответа сервера при переходе на новый адрес.

Проверяем статус редиректа

Сделать редирект просто

Для этого в первую очередь выберите вид редиректа. В большинстве случаев подходит перенаправление 301 или постоянный редирект. Иногда для временного перенаправления стоит использовать редирект 303 и 307.

Затем выберите тип редиректа. Быстрее всего работают серверные редиректы, которые настраиваются с помощью конфигурационных файлов .htaccess для серверов Apache и nginx.config для серверов Nginx. Также можно настроить PHP-редирект с помощью файла index.php. JavaScript- и HTML-редиректы работают медленнее, поэтому используйте их в исключительных случаях.

Сгенерируйте код редиректа с помощью одного из предложенных в статье сервисов и добавьте его в конфигурационный файл или в файл index.php. Проверьте корректность редиректа вручную или с помощью веб-сервиса.

kak-sdelat-redirekt-podrobnyy-obzor-dlya-gumanitariev

texterra.ru

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

Навигация по статье:

Что такое redirect?
Универсальный редирект htaccess
Редирект для WordPress
Редирект для ModX
Редирект для Opencart
Редирект для Битрикс

Что такое redirect

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

Для кого-то фраза “команда веб-серверу” может прозвучать страшно, но на деле это делается очень легко, и с вероятностью 90% Вы справитесь самостоятельно. Конечно, не без помощи этой инструкции.

Сейчас, чаще всего, редирект делают для SEO (склеивают домены или страницы) или заработка (тоже склеивают, но для того, чтобы получить “ранг” и ссылочную массу предыдущего домена для последующей продажи). Очень часто, при изменении структуры сайта, мы меняем URL адреса, но вот поисковый робот об этом не знает и посылает людей (из поисковой сети Яндекс, Google и т.п) на старый адрес страницы. А их не существует. Естественно, что пользователи уходят, поисковая сеть это замечает и выплевывает страницы из индекса. Итог: Вы остаетесь без трафика и нужно заново проиндексировать те же самые страницы, хотя у них поменялся только URL адрес.

URL адрес — это указатель размещения страницы в интернете, который содержит доменное имя и путь к файлу страницы. Например: vk.com или vk.com/groups.

С технической точки зрения, редиректы бывают разные. Когда мы устанавливаем редирект, то веб-сервер может отдавать разные команды. В данной статье мы будем рассматривать 301 редирект (самый популярный), хотя для общей справки ниже опубликуем все статус-коды редиректов.

  • “300” Multiple Choices (несколько вариантов на выбор).
  • «301» Moved Permanently (перемещено навсегда).
  • «302» Temporary Redirect (временный редирект).
  • «303» See Other (затребованный ресурс можно найти по др. адресу).
  • «304» Not Modified (содержимое не менялось — это могут быть рисунки, таблицы стилей, скрипты, и т.д.).
  • «305» Use Proxy (доступ должен осуществляться через прокси).
  • «306» Unused (не используется).

Универсальный редирект htaccess

Это первый и самый простой способ сделать редирект на другую страницу с помощью файла htaccess. Вам необходимо зайти в панель управления хостингом и далее в раздел с файлами сайта. Также, можете воспользоваться FTP клиентом. Нам нужна главная папка сайта www/название_сайта. Здесь находим нужный файл и редактируем его как текст.

Вы можете скачать файл htaccess к себе на компьютер, но в любом случае, при редактировании файла обязательно сделайте его копию, ибо малейшая ошибка в нем повлечет “поломку” сайта. Если вдруг такое произошло, не пугайтесь, а просто загрузите старый файл на сайт.

ищем htaccess через ftp или хостинг

Открываете нужный файл и в самом конце добавьте эту строку:

Redirect 301 /services/usluga-1/ /services/zakazat_izgotovlenie_steklyannih_peregorodok/

Здесь /services/usluga-1/ это старый адрес страницы без доменного имени, а /services/zakazat_izgotovlenie_steklyannih_peregorodok/ новый. Т.е на примере, полный старый адрес мог выглядеть так http://mysite.ru/services/usluga-1/, а новый так http://mysite.ru/services/zakazat_izgotovlenie_steklyannih_peregorodok/.

прописываем 301 редирект

Если по каким-то причинам Вы потерпели неудачу, давайте разбираться в задаче, учитывая особенности CMS (системы управления сайта). Доведем это дело до конца!

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

Способ 1

Как и в универсальном способе, нам нужно сначала найти файл htaccess. Он находится в главной папке Вашего сайта www/mysite.ru. Перед редактированием файла делаем резервную копию, дабы в случае поломки сайта мы могли просто восстановить его работу путем загрузки старого htaccess. Открываем и вставляем в него следующие строки.

Redirect 301 /pop/band1/ http://mysite.ru/music/pop/band1/

Здесь /pop/band1/ это старый адрес страницы без доменного имени, а http://mysite.ru/music/pop/band1/ новый. Т.е на примере, полный старый адрес мог выглядеть так http://mysite.ru/pop/band1/, а новый так http://mysite.ru/music/pop/band1/.

Способ 2

Решение через плагин. Для ленивых, отчаявшихся или просто уставших от рутины вебмастеров.

Заходим в панель управления сайта, далее раздел “Плагины” и жмем на вверху кнопку “Добавить новый”.

добавляем новый плагин редирект

Далее, на странице с новыми плагинами, воспользуемся поиском. Набираем в строке “redirection” и устанавливаем данный плагин.

Далее совершаем установку, и плагин появится в разделе “Установленные”. Находим его и жмем “Настройки”, а далее внутри (на странице плагина) выбираем вкладку “Редиректы”.

Попадаем на такую страницу, нажимаем “Добавить новое”.

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

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

фото пример 301 редиректа на wordpress

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

Используем все тот же любимый нами файл htaccess. Чтобы найти данный файл смотрите в раздел универсальный способ. Находится он в главной папке Вашего сайта www/mysite.ru.

Способ 1

RewriteEngine On
RewriteRule ^services/computers.html$ http://mysite.ru/remont-kompyuterov-i-noutbukov.html [R=301,L]

Здесь ^services/computers.html$ это старый адрес страницы без доменного имени, а http://mysite.ru/remont-kompyuterov-i-noutbukov.html новый. Т.е на примере, полный старый адрес мог выглядеть так http://mysite.ru/services/computers.html, а новый так http://mysite.ru/remont-kompyuterov-i-noutbukov.html. Не забудьте про спецсимволы ^ и $.

Способ 2

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

RewriteEngine On
RewriteRule ^(.*)url.html$ http://mysite.ru/new-url.html [R=301,L]

Здесь ^(.*)url.html$ это старый адрес страницы без доменного имени, а http://mysite.ru/new-url.html новый. Т.е на примере, полный старый адрес мог выглядеть так http://mysite.ru/url.html, а новый так http://mysite.ru/new-url.html. Не забудьте про спецсимволы ^(.*) и $.

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

Снова отправляем в файл htaccess. Чтобы найти данный файл смотрите в раздел универсальный способ (самое начало).

RewriteBase /
RewriteRule ^page1?(.*) http://site.ru/new-category/page1 [R=301,L]

Здесь ^page1?(.*) это старый адрес страницы без доменного имени, а http://site.ru/new-category/page1 новый. Т.е на примере, полный старый адрес мог выглядеть так http://site.ru/page1, а новый так http://site.ru/new-category/page1. Не забудьте про спецсимволы ^ и ?(.*).

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

Как много программистов не любят Битрикс за его специфичность, правда настройка редиректа, это не разработка дополнительного функционала и здесь делается все ОЧЕНЬ просто.

Заходим в панель управления Вашего сайта. Далее слева выбираем “Контент” и “Файлы и папки”. Пролистайте страницу ниже.

ищем htaccess на битрикс

Очень возможно, Вам нужно будет зайти на вторую страницу раздела, так как на первой не будет нужного нам файла.

продолжаем искать htaccess на битрикс

Нужный файл выглядит так (смотрите скриншот ниже). Перед редактированием обязательно сделайте его копию. Ибо если Вы что-то сделаете неправильно, есть вероятность поломки сайта, и вернуть его в былое состояние поможет бекап или загрузка старого файла htaccess через хостинг или ftp.

открываем htaccess на битриксе, чтобы установить 301 редирект

Нажмите редактировать как текст и вставляете следующие строки:

Redirect 301 /services/usluga-1/ /services/zakazat_izgotovlenie_steklyannih_peregorodok/

Здесь /services/usluga-1/ это старый адрес страницы без доменного имени, а /services/zakazat_izgotovlenie_steklyannih_peregorodok/ новый. Т.е на примере, полный старый адрес мог выглядеть так http://mysite.ru/services/usluga-1/, а новый так http://mysite.ru/services/zakazat_izgotovlenie_steklyannih_peregorodok/.

пример 301 редиректа на Битрикс фото скриншот

Если Вы прочитали статью полностью, то заметили, что универсальный метод работает в Битрикс. Это будет самый простой способ сделать редирект в Вашей практике.

blog.vverh.digital

Redirect 301: Как сделать редирект с одной страницы на другую

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

В затее ничего нового, такое пишут тысячи по всему миру и уже много лет. Их желанием не полениться поделиться решением той или иной проблемы я и пользовалась все несколько последних лет. А ситуации бывают (тьху-тьху-тьху) критические, типа «всё упало! всё пропало!». И бывало, где-то глубоко в английском интернете находишь заметку «Ай хэд бла-бла-бла проблем. Ай солвед ит…». И всё спасено, спокойствие установлено. А радости-то сколько, а уровень самооценки-то аж куда. Кто знает — тот поймёт

Пояснительная преамбула: Я не специалист по поисковой оптимизации (SEO) и не программист. Всё здесь описанное — опыт и интуитивные соображения более-менее продвинутого пользователя.

Ещё: Отдельно хочу выразить благодарность ave за многоразовую помощь в реабилитации сайта 🙂

Итак, к теме

Redirect 301: Как сделать редирект с одной страницы на другую

Реализация задачи простая и я это знала, хотя за 3 с лишним года существования сайта 301 редирект был использован единожды, и то не мной. Но на днях я намерено убрала несколько страниц с сайта и мне надо было на старые (убранные) ссылки поставить Redirect 301.

Что такое Redirect 301?

Котик в статьеКотик в статье

«Redirect» по-нашему «перенаправление», «переадресация». То есть, это такой код, с помощью которого мы сообщаем, что намерено и навсегда переадресовываем адрес (URL) страницы с прежнего места на новое. «Навсегда» можно отменить, удалив переадресацию.

301 — постоянная переадресация

302, 303 и 307 — временная переадресация

Для чего он нужен?

Простой пример: у вас была на сайте страница с содержанием, вы её удалили, её больше нет, это значит человек, попавший (с гугла или яндекса, например) на эту страницу, увидит «404 ошибку» или «Страница не найдена». Плохой вариант — человек сразу же закроет ваш сайт, или — решит найти через «поиск» на вашем сайте то, за чем пришёл, если оно вообще ещё есть.

В любом случае, увидеть «404 ошибку» — это не прикольно, да и поисковики массовое наличие таких страниц на сайте рассматривают по-неприкольному — могут понизить ваш сайт в результатах выдачи поиска.

Скриншот из видео, в котором глава команды Google по борьбе с веб-спамом Мэтт Каттс (Matt Cutts) отвечает на вопрос "Какая доля веса PageRank теряется при 301 редиректе?"Скриншот из видео, в котором глава команды Google по борьбе с веб-спамом Мэтт Каттс (Matt Cutts) отвечает на вопрос «Какая доля веса PageRank теряется при 301 редиректе?»

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

В каких случаях на сайтах применяется перенаправление 301?

1. чтобы перенаправлять одну страницу сайта (ссылку) на другую
2. ссылки сайта с www перенаправлять на ссылки без www, или наборот
3. сделать массовую переадресацию ссылок в случае изменения домена или движка сайта

Это основные случаи. Мой случай — первый, его и рассматриваем.
Делается просто, но у меня простой вариант не сработал, пришлось пару часов погуглить в поисках верного варианта.

Делаем переадресацию 301

Делается это в файле .htaccess, который лежит в корневой папке сайта. Открываем его и вписываем туда наш редирект. Я прописывала сразу после RewriteBase /

Redirect 301 /адрес/старой-ссылки http://вашсайт.com/адрес/новой-ссылки

или

Redirect permanent /адрес/старой-ссылки http://вашсайт.com/адрес/новой-ссылки

сохраняем изменения в .htaccess. Всё. Проверьте, происходит ли со старой (не рабочей) ссылки переадресация на новую ссылку. 

У меня этот вариант не сработал. Результат: переадресация не происходила, а в адрес ссылки дописывался параметр ?q=. Вот вариант, который у меня сработал. Уточняю: реализовано для сайта на Drupal

RewriteRule ^адрес/старой-ссылки$ http://вашсайт.com/адрес/новой-ссылки [R=301,L]

 

grammota.com

Настраиваем 301 редирект при помощи файла .htaccess

301 редирект

Редирект – это способ переадресации пользователей и поисковых роботов на 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 (сортировка каталога по разным критериям).
  • Для кросс-доменов, когда контент на двух адресах может дублироваться, но он должен быть на каждом из доменов.

lucky-seo.com

Редирект 301 в htaccess —

Недавно у меня появилась необходимость со страниц одного сайта сделать перенаправление на другой. Причем не всех страниц (что проще), а половины.

Если у вас возникла такая же или похожая ситуация, то вам поможет Redirect 301.

Редирект представляет собой перенаправление пользователей с одного веб-сайта на другой, которое происходит автоматически.

При этом не стоит путать 301 и 302 редирект. 301-ый сообщает поисковым системам, что старый адрес больше не используется, а 302-ой говорит о том, что URL временно не используется, и может когда-нибудь снова появиться.

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

Если ваш сайт (как и большинство) работает на web-сервере Apache, то можно сделать переадресацию через коды скрипта файлов текстовой конфигурации: htaccess или httpd.conf. Чаще используется файл htaccess, переадресацию я делала с его помощью, и поэтому рассмотрим его подробнее.

  1. Итак, первым делом мы заходим в панель управления сайтом (cPanel). И идем в «Диспетчер файлов».
  2. Находим нужную нам папку с сайтом и ищем среди файлов .htaccess.
  3. Открываем его с помощью редактора исходного кода.
  4. Теперь в этот файл текстовой конфигурации нужно прописать следующее:

Options +FollowSymLinks

RewriteEngine on

Тем самым мы включим модули: Apache mod_rewrite и ReWriteEngine в модуле mod_rewrite. Также это можно сделать в php.ini.

Естественно, это всё можно сделать на локальном компьютере с помощью блокнота, а затем скопировать содержание в файл .htaccess.

Существует несколько типов сценариев переадресации. Рассмотрим их.

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

Для этого нужно вставить следующую строчку в файл .htaccess. Внимание: вы прописываете свой сайт!

Redirect 301 /staraya-stranica.html http://domen.ru/novaya-stranica.html

Например, «перенесем» на этот сайт страницу «vsem-privet».

Redirect 301 /vsem-privet http://stacyblog.ru/vsem-privet

Если ваши страницы с префиксом, то прописываем его, если нет (как у меня), то нет.

Минус этого способа в том, что нужно прописывать каждую страницу, если их у вас много.

301 редирект всех файлов на другой адрес

Если вы не переименовывали директорию, то ставим код:

RedirectMatch 301 ^/staroe-nazvanie/ http://stacyblog.ru/staroe-nazvanie/

Если же переименовывали, то:

RedirectMatch 301 ^/staroe-nazvanie/ http://stacyblog.ru/novoe-nazvanie/

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

Когда переносим сайт с одного доменного имени на другое, то используем код:

RedirectMatch 301 ^(.*)$ http://stacyblog.ru

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

Если вы хотите перенести домен stacyblog.ru на www.stacyblog.ru, то нам нужно:

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

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

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

Для переноса www.stacyblog.ru на stacyblog.ru нужно:

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

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

Теперь вам осталось только протестировать сайт и проверить всё ли правильно работает.

stacyblog.ru

Все виды редиректов для .htaccess

Обновлено: 01 Декабрь, 2018

Редиректы внутри домена

301 редирект с домена без WWW на домен с WWW

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

С домена с WWW на без WWW

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

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

Вариант 1

Redirect 301 /was.php http://www.site.ru/new.php

Вариант 2

RewriteRule ^dir /dir-new/$1 [R=301,L]

С Get параметрами

Вариант 1 – когда известно значение Get-параметра

RewriteCond %{QUERY_STRING} ^IBLOCK_ID=1&SECTION_ID=111$ [NC]
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]

Вариант 2 – когда значение Get-параметра неизвестно

RewriteCond %{QUERY_STRING} ^IBLOCK_ID=1&SECTION_ID=(.*)$ [NC]
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]

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

RewriteRule ^dir/$ http://www.site.ru/new-dir/ [R=301,L]

Добавляем к урлу слеш на конце

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

Убираем с конца урла слеш

RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ http://www.site.ru/$1 [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]

Для заданного файла в различных директориях

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

Убираем все GET-параметры после знака вопроса

RewriteBase /
RewriteRule (.*) $1? [R=301,L]

Редиректы с (под)домена на домен

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


RewriteEngine On 
RewriteBase /

RewriteRule ^kastraciya/ https://veterinar24.spb.ru/uslugi/kastracija-sobaki-na-domu.html [R=301,L]

С главной страницы одного домена на главную страницу другого домена


RewriteEngine On 
RewriteBase /

RewriteRule ^ https://mosvet24.ru/ [R=301,L]

Со всех страниц одного домена на такие же страницы другого домена

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

Со всех страниц одного домена главную другого домена (с учетом www)


RewriteEngine On
RewriteBase /

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

RewriteCond %{HTTP_HOST} ^vetskoray\.ru$ [NC]
RewriteRule ^(.*)$ https://veterinar24.spb.ru/ [R=301,L]

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

RewriteCond %{HTTP_HOST} ^([a-z0-9_-]+)\.site\.com$ RewriteRule ^(.*) http://site.com/$1 [R=301,L]

С поддомена на основной домен второго уровня

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

С папки одного домена на папку другого домена

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]

Рейтинг автора

Автор статьи

SEO-аналитик, программист (PHP, Ajax, Delphi, MySQL).

Написано статей

Загрузка…

404.su

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *