301 редирект (переадресация) через .htaccess

Точки зрения на редиректы

SEO — область знаний, которая полна мифов и гипотез. 

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

  1. 301 редирект не передает\передает санкции поисковых машин
  2. 302 редирект не передает\передает санкции поисковых машин 
  3. 302 редирект передает ссылочный вес в очень малом объеме

Куда вас отредиректили, или как не сломать все

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

Они имеют колоссальное влияние на оптимизацию сайта, поэтому очень важно использовать их правильно. Не злоупотребляйте HTML- и JS-перенаправлениями, используйте корректные коды ответа сервера и внимательно выбирайте страницу, на которую настраиваете редирект

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

Просмотры:
6 690

Александр Лушин

Александр Лушин — независимый SEO-эксперт. Занимается SEО и созданием сайтов с 2008 года. Специализируется на аудитах сайтов, поисковом продвижении и решениях под ключ. Руководит небольшой командой специалистов.

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

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

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

RewriteCond %{HTTP_HOST} ^oldmysite\.ru$ 
RewriteRule ^(.*)$ http://newmysite.ru/$1 

Правило для доменов .РФ

RewriteCond %{HTTP_HOST} ^xn-...\.xn--p1ai$ 
RewriteRule ^(.*)$ http://mysite.ru/$1 

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://mysite.ru/$1/ 

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

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ http://www.site.ru/$1 

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

Для примера возьмем в исключение папку панели администратора в CMS Bitrix

RewriteRule ^bitrix/ /bitrix/admin/  
RewriteRule ^(.*)$ http://mysite.ru/ 

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

RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://mysite.ru/  

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

RewriteCond %{HTTP_HOST} ^abc.mysite.ru$  
RewriteRule ^(.*)$ http://mysite.ru%{REQUEST_URI} 

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

Если в разных папках сайта лежит файл с одинаковым названием, то настроить переадресацию этих файлов на один.

RewriteRule /nash-file.php /nash-file.php 

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

Для страницы появится обычный URL без передачи Get-параметров.

RewriteRule ^catalog/okno/?$ /firma/okna/detail.php?ID=123 

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

Необходимое правило для решения проблемы с дублями страниц в поисковых системах.

RewriteCond %{HTTPS} "on"
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} 

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

Данное правило позволяет не пускать на сайт спамный трафик с других сайтов:

RewriteCond %{HTTP_REFERER} ref-spam-site.ru  
RewriteCond %{HTTP_REFERER} another-ref-spam.ru 
RewriteRule .* - 

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

Для поисковых систем очень важно получать код ответа 404 для несуществующих страниц

ErrorDocument 404 /404-for-me.php

Отслеживайте трафик

После начала переноса следите за тем, как изменяется трафик поисковых роботов и пользователей на новом сайте и на старом. Желательно, чтобы на новом сайте трафик рос, а на старом – уменьшался. Отслеживать действия роботов и посетителей на сайте можно с помощью Search Console и других инструментов.

Отслеживайте трафик с помощью Search Console

В Search Console есть много функций, которые позволяют следить за тем, как выполняется перенос сайта:

  • Файлы Sitemap. Отправьте нам два таких файла, ранее сохраненных при сопоставлении URL. Первоначально в файле Sitemap с новыми URL нет проиндексированных страниц, тогда как в файле Sitemap со старыми URL таких страниц много. По мере индексации новых URL число проиндексированных страниц из файла Sitemap со старыми URL упадет до нуля.
  • Отчет об индексировании. Перенос сайта отражается на диаграммах. Число проиндексированных URL на прежнем сайте упадет, а на новом – увеличится. Регулярно проверяйте, не возникло ли непредвиденных ошибок сканирования.
  • Поисковые запросы. По мере того как страницы нового сайта будут индексироваться и оцениваться системой PageRank, в отчетах по поисковым запросам станут появляться новые URL с указанием количества показов и кликов в результатах поиска.

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

Периодически просматривайте журналы обращений к серверам и ошибок, проверяйте результаты сканирования страниц роботом Googlebot, выявляйте URL, которые необоснованно выводят коды ошибок HTTP, и отслеживайте обычный пользовательский трафик.

Если вы установили на сайте средство веб-аналитики или если аналитику выполняет ваша система управления контентом, рекомендуем дополнительно изучать данные, полученные таким способом. Это позволит вам отмечать, как идет переориентация трафика на новый сайт. В частности, вы можете использовать сервис «Google Аналитика»

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

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

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

На самом деле, инструментов на этот случай великое множество (в том числе — плагины для CMS). Так как все они делают они одно и то же, приведу только один пример: 301 Redirect Code Generator

301 Redirect Code Generator — онлайн генератор кода редиректа

Пожалуй, дополнительные комментарии тут излишни: просто вводите адрес страницы-донора (опционально), страницы-акцептора, выбираете подходящий тип редиректа, жмете кнопку «Generate Code» и будет вам счастье)

Редирект 301 в панелях управления сервера

Большинство панелей управления сервера предоставляют возможность настройки переадресации с кодом 301. Рассмотрим варианты решения этой задачи на примере двух популярных ПУ для VDS.

Cpanel

Нужно перейти в блок «Домены» => «Перенаправления». В появившемся окне выполнить следующее:

  • В строке «Тип» выбрать «Постоянный 301».

  • В строке «https://www» из выпадающего списка выбрать домен сайта (например, example.ru).

  • В строке «Перенаправляет на» указать для домена адрес http://example.ru.

  • В блоке «Перенаправление www» поставить галочку напротив «Перенаправлять только с www».

  • Сохранить изменения кликом на «Добавить».

ISPmanager

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

Примеры 301 редиректов в .htaccess

Мы уже рассматривали множество примеров с редиректом по в статьях:

  • 301 редирект для удаления/добавления слэша в конце URL
  • 301 редирект с index (.html и .php) на корень сайта «/»
  • Редирект 301 с http на https
  • Редирект 301 с www на без www
  • Смена адреса сайта — редирект со старого домена на новый

Здесь мы дополним варианты редиректов, которых еще не было.

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

Редирект с site.ru/cat/oldpage на site.ru/newpage.html

RewriteRule ^cat/oldpage.* /newpage.html 

Или второй вариант:

Redirect 301 /cat/oldpage http://www.site.com/newpage.php 

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.htm$ $1.html 

Или второй вариант:

RewriteRule ^(.*)\.htm$ $1.html 

С любой страницы в каталоге и подкаталогах /old/ будет происходит редирект на /new.php

RewriteRule ^old(.*)$ /new.php 

2.4. Удаление лишних слэшей в адресе URL

Например, страница /catalog///stranica.html доступна и открывается. Чтобы избежать такой ситуации и не плодить бесконечное число дублей следует записать следующий редирект

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 

2.5. Реврайт без редиректа

Можно загрузить другую страницу без смены адреса страницы URL. Например, загрузим страницу /news.html, а в адресной строке будет отображаться адрес /news/happy

RewriteRule ^news/happy.* /news.html 

2.6. Простановка замыкающего слеша в конце адреса главной страница

Например, многие сервера работают так, что последний слэш не пишется в URL. Например, http://site.ru. Ниже приведенный код решают это проблему: сайт будет открывать по http://site.ru/

RewriteCond %{REQUEST_URI} /++$
RewriteRule ^(.+)$ %{REQUEST_URI}/ 

Например для редиректа со страницы site.com/directoriya/stranica.html на site.com/stranica.html нужно прописать следующее:

RewriteRule ^directoriya/(.+)$ http://site.com/$1 

Или второй вариант:

RewriteCond %{DOCUMENT_ROOT}/directoriya/$1 -f
RewriteRule ^(.*)$ directoriya/$1 

2.8. Редирект GET параметров

Например, сделать редирект со страницы /?act=page&id=2 на /page-2/

RewriteCond %{QUERY_STRING} act=page 
RewriteCond %{QUERY_STRING} id=(\d+) 
RewriteRule .* /page/%1/? ]

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

В данном примере сначала проверяется факт того, что пользователь открыл сайт с мобильного устройства , далее происходит замена адреса сайта на m.URL

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

2.10. Редирект с поддомена

Например, выполним редирект с любой страницы поддомена poddomen.site.ru на основной домен site.ru

RewriteCond %{HTTP_HOST} ^poddomen.site.ru$ 
RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI} 

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

Кроме простой блокировки, сайт можно перенаправить на страницу yandex.ru, rambler.ru, google.ru или любой другой понравившийся ресурс. Последовательность действий одинакова, но вместо 127.0.0.1 нужно указать IP-адрес нужного сайта.

Как узнать IP-адрес сайта на который будет идти перенаправление

Способ первый. Нажимаем комбинацию Win+R и вводим команду cmd. Откроется черная консоль, в которой пишем слово ping и имя нужного домена. Например, google.ru. Эта команда заставит наш компьютер обмениваться с сайтом информационными пакетами, а мы узнаем нужный IP-адрес, который будет указан в квадратных скобках. В нашем случае, это 173.194.40.247. Вносим изменения в hosts и сохраняем.

Теперь по запросу vk.com будет открываться google.ru.

Способ второй. Если вас пугают всякие консольные команды и некрасивые окошки, можете воспользоваться услугами онлайн сервиса. Их довольно много, в качестве примера подойдет 2ip.com.ua . Заходим на главную страницу, выбираем вкладку «Узнать IP». Пишем имя домена в соответствующей строке, кликаем кнопку «Узнать» и получаем всю необходимую информацию.

Итоги

Правка файла hosts позволяет минимальными средствами контролировать доступ к интернет-ресурсам. Простота и легкость делают этот способ доступным практически для всех категорий пользователей. В этом его достоинство, но и недостаток. Методика хорошо работает с детьми и неопытными «чайниками», но более продвинутые пользователи смогут легко найти решение в интернете или обойти преграду самостоятельно, но все-таки есть способы как защитить файл hosts от посягательств. Стоит отметить, что научившись работать с файлом hosts, вы сможете легко исправлять вредоносные воздействия разных вирусов. Многие из них, пользуясь простотой и эффективностью этого метода, лишают компьютер возможности обновить антивирусную программу, блокируют доступ к поисковым системам и направляют нас на «плохие» сайты. Теперь вы знаете, что удалив несколько строк, можно свести их старания к нулю.

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

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://www.%1/$1

Почему URL редиректы важны для вашего сайта WordPress?

Здесь можно выделить два направления, поэтому отнеситесь к этому вопросу ответственно.

Для поисковых систем:

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

Для людей:

  • Если старый сайт был популярным и на нем можно было найти полезный контент, есть большая вероятность того, что пользователи добавили некоторые страницы в закладки.
  • В новом сайте с другой структурой URL эти закладки не будут отображаться верно, на экране появится запись «404 page not found».

Основные способы настройки редиректов

Настройка через указание отдельного условия в PHP-скрипте. Таким образом, обращаясь к корневому файлу php браузер получает команду открыть новую страницу вместо старой.

Например:  

header(‘HTTP/1.1 301 Moved Permanently’);  

header(‘Location: http://www.example.com/’); 

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

Например,

JavaScript – операция осуществляется непосредственно через браузер и является наиболее медленным способом. Используется, если необходим редирект с задержкой. Минусом является то, что такой редирект не будет работать, если JavaScript отключен в браузере. И не будет учтен Яндексом. 

Например, window.location.href=»https://site.com» 

Настройка 301 редиректа на nginx. Настройки необходимо вносить в файлах конфигураций виртуальных доменов. 

Например, rewrite ^https://$host$request_uri? ; 

где: 

$host – имя хоста из запроса, если отсутствует – имя в поле «Host» заголовка, если тоже отсутствует – имя сервера;  

$request_uri – первоначальный запрос с аргументами (все, что идет после доменного имени). 

могут иметь следующие параметры: 

permanent – перенаправление с кодом 301,

redirect – перенаправить с кодом 302,

last – закончить обработку с переходом в новый location,

break – закончить обработку и остаться в текущем location. 

Для настройки переадресаций на сервере Apache более надежной является настройка серверных редиректов через внесение изменений в файл .htaccess. Разберем этот способ подробнее.   

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

Существует несколько способов — с правкой файла .htaccess (сложнее) и с помощью плагинов (очень легко и просто). В этой записи я расскажу вам, как сделать редирект (redirect), чем может быть полезен он и посмотрим варианты настройки редиректов на ВордПресс с плагинами и без.

Зачем нужен редирект

Редиректы используются при смене домена или адреса сайта.  Это позволяет поисковым роботам и посетителям находить содержимое используя старые адреса, и не терять при этом все внешние ссылки указывающие на старый домен. При смене формата постоянных ссылок (ЧПУ) в WordPress, смена движка CMS, переход сайта с http на протокол https, склейки домена с www и без. Редиректы так же используются для создания упрощенных или укороченных версий некоторых более длинных адресов сайта и т. д..

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

Существует два основных типа:

Редирект 301 (Moved Permanently) — постоянный

Постоянное перенаправление 301

301 является наиболее популярным и используется для перенаправление навсегда. В результате этого процесса старый URL исчезает из выдачи, а новый индексируется поисковиками. Чаще всего SEOшники говорят именно об этом методе. Иногда сервис выдает браузеру ошибку 404 – это значит, что редирект не настроен.

302 (Found) или иногда 307 (Temporary Redirect) — временный

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

Применять этот вариант переадресации нужно с осторожностью

Он нужен, когда важно оставить предыдущую версию или ссылки, которые размещены

Обратите внимание, что постоянный редирект 301 в будущем можно конечно изменить. Постоянный redirect запоминаются браузерами и ПС на более долгий срок, чем временные

Как сделать 301 редирект в файле .htaccess

Файл конфигурации .htaccess, который находится в корне сайта. В в самое начало файла необходимо внести соответствующую вашему случаю информацию.

Чтобы склеить домен с www на без www. Для постоянного переноса используется код редиректа 301, для временного – 302 или 307. И не забывайте подставлять сои веб-ресурсы.

И наоборот без www с www:

Перенаправление с www

Какой из вариантов выбрать? Посмотрите: какой вариант находиться в топе и для какого из вариантов больше страниц в индексе.

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

Переезд на новый домен учитывая пожелания 2-ух основных поисковых систем Яндекс и Google: постраничный 301 редирект со старого сайта на новый. При этом для файла robots.txt редирект не надо делать, а прописать в нем директиву Host на новый домен. Тогда код для настройки редиректа на старом сайте может иметь следующий вид (мне бы так раньше сделать):

А файл robots.txt для старого сайта:

Редирект 301 с HTTP на HTTPS

После подключения сертификата-ssl стоит добавить обязательную переадресацию с протокола http на безопасный https, для того, чтобы все ваши соединения были зашифрованы.

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

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

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

Переадресации можно создать любые, я привёл лишь некоторые из них. Если вы не уверены что, сможете правильно добавлять в файл .htaccess нужные записи, то лучше прибегнуть к помощникам. Проще всего на WordPress использовать специальные, для этой цели, плагины.

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

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1/

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)$ http://%1/$1/

Использование всей цепочки сертификатов

Применяя сертификат в NGINX, необходимо загрузить не только сертификат для домена, но и для всех центров сертификации — как основного, так и промежуточных. В противном случае, мы получим ошибку This server’s certificate chain is incomplete. Grade capped to B:

В случае покупки сертификата, нам отправляют все ключи в отдельных файлах. Цепочка сертификатов, как правило, идет в файле chain. Мы должны скопировать последовательность в данном файле и добавить ее к содержимому в файле с сертификатом домена — получиться файл, содержащий как последовательность для домена, так и всех центров. Назвать его можно fullchain.pem.

В случае получение бесплатного сертификата от Let’s Encrypt, мы получаем 4 файла, один из которых называется fullchain.pem — именно он и содержит все необходимые последовательности.

И так, при настройке виртуального домена в NGINX, необходимо указать путь до файла, содержащего в себе все ключи, например:

server {
        listen 443;
        server_name security.dmosk.ru;
        ssl on;
        ssl_certificate /etc/nginx/ssl/fullchain.pem;
        ssl_certificate_key /etc/nginx/ssl/cert.key;
        …
}

* в данном примере мы настраиваем NGINX для домена security.dmosk.ru; обратите внимание, что мы указали путь до файла fullchain.pem, в котором должны находиться последовательности, как для домена, так и центров сертификации. Не забываем перезапустить nginx:

Не забываем перезапустить nginx:

systemctl restart nginx

Как настроить редирект на www (или без www)

Подобные перенаправления требуются для случаев, когда сайт доступен по вариантам nsite.ru и www.nsite.ru, в этом случае поисковики считают их дублями и могут либо самостоятельно выбрать один из вариантов в качестве главного зеркала, либо в поиске будут варианты с обоих доменов. В общем случае, это отрицательный фактор при ранжировании сайта.

Вариант попроще, для одного домена. Перенаправление производится с поддомена www.site.ru на site.ru:
Здесь появилась новая директива RewriteCond, которая задаёт условие, при котором должны срабатывать редиректы — правила RewriteRule. Условие, в данном случае, имя домена, соответствующее www.nsite.ru (в регулярных выражения символ точки означает «любой символ», поэтому его желательно экранировать с помощью обратного слеша).

Обратное перенаправление тоже выполнить очень просто:
Оба варианта рабочие, но у них есть маленький минус — для каждого нового конфига необходимо заменять домен nsite.ru на свой собственный. Нельзя ли сделать уникальный вариант? Легко!

Редирект с любого поддомена www:

Редирект на поддомен с www:

%{HTTP_HOST} — текущий домен

Что такое mod_rewrite

Чтобы прописать редирект в файле конфигурации сервера Apache, нужно придерживаться некоторых правил.

Модуль mod_rewrite применяется на веб-серверах Apache для изменения URL-адресов. Для работы модуль использует набор директив, прописанных в основном конфигурационном файле Apache (httpd.conf) либо в файле .htaccess. Основными директивами модуля являются RewriteCond и RewriteRule. Правила для mod_rewrite должны соответствовать синтаксису регулярных выражений.

Расположение правил

Все директивы нужно прописывать после двух строк:

Options +FollowSymLinks
RewriteEngine On

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

Синтаксис и символы

  • . — Точка означает любой символ.
  • — перечень символов, совпадающих с буквами a, b, или с.
  • — перечень символов, не входящих в диапазон. Условию соответствует любой символ, кроме a, b, с.
  • * — предыдущий символ может повторяться 0 и более раз.
  • * — найти символы из заданного набора идущие подряд.
  • * — обратная операция.
  • .* — замена любого набора символов. «.*» — найти все подстроки между кавычками.
  • ^ — обознает начало строки (при использовании в начале выражения).
  • $ — конец строки.
  • \w — буква, цифра или подчёркивание _.
  • \d — любая цифра.
  • \D — любой символ, кроме цифр.
  • — указание на любую цифру.
  • — указание на любую букву от a до z с нижним регистром.
  • — указание на любую букву от A до Z с верхним регистром.
  • — любая буква от a до Z, регистр не важен.
  • — тоже самое, только короче.

Флаги для доп. опций

  • NC — NoCase отключает проверку регистра символов при срабатывании правила.
  • R — Redirect останавливает изменение URL-адреса и возвращает результат. Самое популярное значение R=301, однако встречаются и другие для временных редиректов (302, MOVED TEMPORARY).
  • L — Last останавливает создание URL-адреса и строка считается окончательной.

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

RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$ 
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)\/$ http://%1/$1

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1

RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^(.*)\/$ http://%1/$1

Полезные советы

  • Современные браузеры по умолчанию используют кеширование для редиректов. Чтобы проверить работу редиректа необходимо очистить кеш в браузере или использовать любой сторонний сервис по проверке кода ответа сервера.
  • Нежелательно создавать цепочки редиректов. При медленной работе сервера это вызовет недовольство пользователя. Поисковые роботы также не любят последовательные редиректы — вес исходной страницы может не передаться.
  • При составлении файла .htaccess простые директивы должны идти раньше сложных, которые распространяются на весь сайт. Такая компоновка будет более удобной при работе с файлом и поможет избежать путаницы.

Синтаксис .htaccess

Регулярные выражения

  • буква, цифра или подчёркивание (_) — \w;
  • заменяет любую цифру — \d;
  • заменяет любой символ, но не цифру — \D;
  • заменяет любую цифру — ;
  • любая буква от a до z (весь латинский набор символов) в нижнем регистре — ;
  • любая буква от A до Z в ВЕРХНЕМ регистре — ;
  • любая буква от a до Z в любом регистре — .

Флаги

Указываются в квадратных скобках — [].

  • отключение проверки регистра — NC;
  • указание типа редиректа — R=3xx;
  • конец строки — L.

Комментарий

Не обрабатывается и обозначается символом «#» в начале строки

#пример комментария

Ниже приведен пример файла .htaccess, запрещающего доступ ко всем файлам проекта на сервере.

Создать код редиректа автоматически

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

К примеру, с этим справится генератор 301 Redirect Code от RapidTables. Есть возможность выбора: сформировать код для вставки в .htaccess, а также PHP, HTML, JavaScript и другой. Комментарии со ссылкой на инструмент можно удалить.

Генератор RapidTables

301 Redirect Generator от Webworkshop предлагает сформировать код для редиректа со страницы на страницу, с домена на домен и с директории на директорию. Отдельно есть окно для перехода на домен с www. Для редиректов на домен есть только код для Apache .htaccess, для страниц есть возможность выбора.

Генератор от Webworkshop

Batch RewriteRule Generator позволяет настраивать редиректы для доменов или страниц пакетно: введите список URL-адресов с табуляцией или пробелами, можно скопировать пары из таблицы Excel, и генератор выдаст нужный код.

Batch RewriteRule Generator

Заключение

Еще раз поздравляю тех, кто дочитал до конца! К сожалению, схема с uCoz перестала работать. Честно сказать — метод не самый надежный и этого стоило ожидать рано или поздно. Тем не менее, я не зря делаю акцент на редиректе. Большинство доменов CPA-сетей под фильтром у ВК. Это значит, что при переходе по такой ссылке, пользователь увидит от ВК предупреждение вида: «Ссылка на подозрительный сайт». Чуть позже напишу, как я делаю надежные платные редиректы. Если работаете с трафиком — не забудьте ознакомиться с моим мануалом по продвижению в ВК и другими материалами блога.

С вами был Игорь Кантор. Надеюсь, что статья оказалась для вас полезной. Подписывайтесь на мой Телеграм-канал https://t.me/casecollector — впереди еще много огненного материала! Всем профита!)

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: