Меню

Как настроить редирект www без www https



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

Редирект с www на сайт без www можно настроить в файле «.htaccess». Для этого нужно знать специфический синтаксис этого файла. Я сама создаю сайты на любительском уровне, поэтому мне пришлось в нем разобраться.

Итак, редирект с www на без www делается так:

У меня на одном из сайтов работает! Очень надеюсь, что и на вашем сработает!

Также порекомендую вам ознакомиться с сервисами для веб-мастера. Их полный список можно найти вот тут https://otzyvmarketing.ru/category/prochee-dlya-veb-mastera/. Там есть сервисы, которые помогут вам правильно настроить файл «.htaccess». Поищите сами на сайте.

У меня на сайте в файле «.htaccess» вот такой код, который не только дает перенаправление с www на без www, но и другие важные вещи:

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

Redirect 301 /pastnews/empty/50/ https://site.ру

RewriteCond % off [OR]

RewriteRule .* index.php [L]

Дело в том, что нужно не только настроить редирект с www на «пустоту», но и добавить редирект с http на https и редирект с url без слеша на ulr/.

То есть это три задачи. В коде выше все три задачи реализованы.

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

Строчка Redirect 301 /pastnews/empty/50/ https://site.ру позволяет перенаправить адрес https://site.ру/pastnews/empty/50/ на адрес https://site.ру.

Общий совет по файлу «.htaccess»: нужно располагать все команды от частным к более общим. Потому что команды выполняются по порядку. Также важно, чтобы редирект выполнял перенаправление лишь один раз.

Очень рассчитываю, что мой текст смог вам помочь! Ведь я действительно всеми силами старалась дать исчерпывающий ответ. Весьма вероятно, что я могла что-нибудь забыть, ведь формат не позволяет мне развернуться. В любом случае, я хочу пожелать вам удачи! А если вы недовольны моим ответом или, наоборот, в восторге, то можете оставить ваш комментарий!

Источник

Как сделать 301 редирект правильно

Сразу выскажусь. Не лезьте делать редирект в htaccess, если не шарите в этом! Пусть это сделает программист. 301 редирект — это вам не шутки вышучивать.

Один мой знакомый оптимизатор как-то раз неправильно отредактировал htaccess, и весь сайт клиента нахрен полетел. Спас хостер, который делал бекап.

Что такое 301 редирект?

Редирект 301 (Permanent Redirect) – это перенаправление, которое направляет посетителя с одного адреса на другой, при этом первый адрес отдает код ответа сервера 301. То есть если со страницы znet.ru/zelenyj-slonik стоит 301 редирект на страницу znet.ru/green-elefant, то пользователь, зашедший на первую страницу, даже не увидит ничего с ней, а попадет сразу на вторую страницу, и в адресной строке у него будет адрес именно второй страницы. А старая страница будет отдавать код ответа сервера 301.

Также бывают и другие редиректы, например 302 и 303 редирект. Вот чем они отличаются:

  1. Permanent Redirect (301) означает, что страница перенесена навсегда, на постоянной основе;
  2. Temporary Redirect (302, 303 и некоторые другие) означает, что страница перенесена временно.

По временному редиректу новой странице не «подклеится» никаких показателей от старой страницы, и соответственно никаких бонусов в продвижении для этой новой страницы не будет. А вот по постоянному кое-что передается, вот почему сеошники его и любят.

Что передается по редиректу?

Что такое редирект, выяснили, теперь давайте о том, что передается по нему. В большинстве случаев это следующие данные:

  • Ссылочный вес;
  • ТИЦ сайта (если в роботсе прописана директива host);
  • Возраст страницы, если обе страницы на одном домене.

Когда я двигал один крупный портал, мы его переносили на новый домен, и позиции в Google очень сильно просели, потому что ссылки были на старый домен. Яндекс сразу понял, что поскольку стоит 301 редирект, то ссылочная масса перешла к новому домену (либо он просто-напросто уже тогда не учитывал ссылки). А вот Гуголь ругался и не хотел ранжировать сайт высоко. Тогда мы у всех ссылок поменяли домен, и уже через пару недель был взрывной рост позиций в Гугле. Так что при передаче веса ссылок могут быть нюансы.

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

  • Санкции, которые были наложены на домен сайта (в очень редких случаях санкции, правда, все же передавались, особенно злой фильтр Яндекса за накрутку ПФ);
  • Возраст домена.

Если бы 301 передавал санкции, все бы уже давно проставили со своих дорвеев редирект на конкурентов.

Предостережение

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

Обязательное условие на апаче – наличие подключенных модулей mod_alias и/или mod_rewrite в файле php.ini. Эти модули изначально включены в большинстве хостингов, но вы бы все равно лучше уточнили этот момент.

Чем проверить код ответа сервера

Если полезли проставлять редирект — проверьте потом, все ли правильно сделано.

Читайте также:  Электрогитара как настроить анкер

Лучше всего проверять в Яндекс Вебмастере. Вот ссылка на инструмент Проверка ответа сервера. Если вы зареганы в ЯВМ (да я вас подкалываю, конечно вы там зареганы… правда же?), то вы можете им воспользоваться.

Если же для вас этот вариант не катит — пользуйтесь Берталом . Это классика!

Практические примеры использования

Код Permanent Redirect используется чаще всего в таких случаях:

  1. Смена домена.
  2. Склеивание доменов без www с доменами www.
  3. Перенос конкретных страницы сайта на новый URL.

Кстати, если вы просто удаляете страницу, то вы можете потерять входящие ссылки на неё. Я советую в случае удаления страницы проставлять с неё редирект на главную страницу.

Как правильно вставить код в htaccess

Так, теперь собственно как сделать редирект в htaccess. Ну нужно открыть этот файл сначала, а потом уже думать, как сделать редирект. Подключаемся через FTP (Filezilla например) к нашему сайту, открываем файл через прогу Notepad++, вставляем нужный код, сохраняем. Если что-то не так — откатываем. Но, опять же, лучше всего вам это сделает программист.

Коды для вставки

Чтобы вы не тупили на тему, как настроить 301 редирект, можете использовать эти коды.

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

Самый частый случай — это именно редирект с одной страницы на другую. Редиректы с без www на домен с www и так далее я даже не настраиваю, так как большинство моих сайтов сделаны на движке WordPress, а там все эти редиректы настроены по умолчанию. А вот переадресация страницы — это то, что мне бывает частенько нужно. Вот как прописать 301 редирект таким образом:

Новый адрес нужно обязательно указывать с http и доменным именем. Где was.php — там адрес старой страницы, соответственно вместо www.site.ru/new.php также прописывайте свой вариант.

С www на без www

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

Как провести редирект с www на без www:

С без www на www

Если планируется редирект с без www на www, используется другой код:

С одного домена на другой

Вот как делается редирект на другой сайт:

Редирект с одного домена на другой полезен, например, при переезде сайта на новый домен.

С https на http

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

С http на https

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

Со страниц со слешем / на конце на страницы без слеша

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

Читайте также:  Телефон не принимает смс как настроить

Со страниц без слеша на конце на страницы со слешем

Переадресация 301 на страницы со слешем на конце:

Убираем index.php

Если у нас страница site.ru/index.php отдает код 200 ОК, то нужно её убрать нахрен. И проставить 301 редирект с index.php на корень:

Как писать название .рф домена в htaccess

Самое важное правило здесь – отказ от кириллицы. Поэтому нужно использовать имя домена в punycode (например, взяв его из Whois).

Боремся с рефспамом с помощью редиректов

Если вас задалбывает реферальный спам, то есть особый код, который с помощью заголовка HTTP_REFERER настраивает 403 код ответа сервера для трафика с сайтов-спамеров.

Как легко делать редиректы в WordPress: используем плагин Redirection

Для WordPress я советую плагин Redirection. Что это такое? Это то, чем пользоваться проще пареной репы. Видоса на русском нет, но и в английской версии понятно, как сделать редирект с помощью этой фичи:

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

В завершение

Если вы не программист, а сеошник или вебмастер, то если вы услышите такие страшные слова, как серверный редирект, query string, php header, location — доверьтесь спецу, прошу вас. Не шутите с редиректами.

Источник

Как сделать 301-редирект в файле .htaccess? Примеры и правила настройки

Введение. Правила приведены для сервера Apache. В правилах: % — обозначает фрагмент URL-адреса после знака вопроса (задания значений CGI-параметров). Срабатывание того или иного правила для редиректа определяется тем, попадает URL-адрес страницы под это правило или нет. О значении тех или иных обозначений (^, $, NC и т.д.) см. памятку в конце страницы.

Проверка кода ответа. Быстрая и бесплатная проверка кодов ответа для списка URL в режиме онлайн реализована в рамках комплекса инструментов «Пиксель Тулс», предусмотрено удобное цветовое кодирование и загрузка URL файлом.

Анализ проведён с помощью инструментов в сервисе Пиксель Тулс.

Ниже даны наиболее используемые правила настройки файла .htaccess для 301-редиректа. Лучше размещать все правила после двух строк:

Options +FollowSymLinks
RewriteEngine On

# Текстовый комментарий, данная строчка не будет обрабатываться.

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

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

RewriteCond % ^80$ [OR]
RewriteCond % =on
RewriteRule ^(.*)$ https://pixelplus.ru/$1 [R=301,L]

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

При этом, новый адрес указывать необходимо полностью с http и доменным именем.

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

Скажем, адрес страницы имеет вид: http://www.site.ru/dir/index.php?IBLOCK_ID=1&SECTION_ID=111 тогда для настройки 301 переадресации на новый адрес, необходимо использовать следующее правило:

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

Если один (или несколько) из GET параметров не задан(ы) или может иметь произвольное значение (в нашем примере это SECTION_ID), можно использовать следующий код:

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

Если адрес имеет следующий вид: http://www.site.ru/?abc то для перенаправления подойдет последовательность строчек:

RewriteCond % ^abc$ [NC]
RewriteRule ^$ /? [R=301,L]

Если требуется настроить переадресацию только для адреса http://www.site.ru/dir/, но при этом чтобы страница http://www.site.ru/dir/index.php?IBLOCK_ID=1 открывалась по старому адресу, необходимо использовать спецсимвол $ в правиле.

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

Для доменов в зоне РФ действуют все те же правила, но только все кириллические символы необходимо заменить на альтернативный код (он на латинице). В частности, сама зона .рф преобразуется в .xn--p1ai.

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

И для домена в зоне РФ:

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

RewriteCond % ^si-te\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/si-te/ [R=301,L]

RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301]
RewriteRule ^(.*)$ http://www.newsite.ru/new/ [L,R=301]

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]

RedirectMatch 301 (.*)\.html$ http://www.new-site.ru$1.php

RewriteRule ^img/(.+)\.jpg$ http://img.domain.ru/$1.jpg [R=301,L]

Указывается порядок загрузки типов индексного файла, лежащих в корне каталога.

Читайте также:  Как настроить телефон bq после сброса до заводских настроек без аккаунта

DirectoryIndex index.html index.php index.htm index.shtml

RewriteCond % ^[A-Z]<3,9>\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site.ru/ [R=301,L]

Для всех индексных страниц на сайте:
RewriteRule ^(.*)index\.php$ http://www.site.ru/$1 [R=301,L]

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

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

Код позволяет поставить 301-редирект со всех папок вида http://site.ru/***/uniqe-file.html на один файл в корне /unique-file.html. Бывает полезен при переделке сайта и изменении ссылок.

RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11 [NC,L]

Код позволяет создать копию страницы с относительным адресом /studio/news/detail.php?ID=230354&PAGEN_2=11 по адресу /testovyi/test/

Позволяет устранить наличие дублей URL с HTTPS в индексе поисковых систем.

RewriteCond % ^80$ [OR]
RewriteCond % =on
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

RewriteCond % ref-spam-site.ru [NC,OR]
RewriteCond % another-ref-spam.ru [NC]
RewriteRule .* — [F]

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

Внимание, важно чтобы код ответа сервера для 404 ошибки был именно 404. Путь к файлу указывается с помощью следующей строчки:

ErrorDocument 404 /404-for-me.php

! Все правила выполняются в прямом порядке их следования в файле .htaccess и правило, написанное позже, и будет выполняться позже.

! Для сайтов, на которых используется не сервер Apache, аналогичные 301-редиректы легко настраиваются с помощью PHP.

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

RewriteCond % (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://mobile.site.ru/ [L,R=301]

RewriteCond % !(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-search.site.ru/ [L,R=301]

Переадресация с www.site.ru/component/content/?view=featured на www.site.ru/
RewriteCond % ^view=featured$ [NC]
RewriteRule ^component/content/$ /? [R=301,L]

Переадресация с www.site.ru/index.php?idc=4&marea=6 на www.site.ru/
RewriteCond % ^idc=4&marea=6$ [NC]
RewriteRule ^index\.php$ /? [R=301,L]

. — Точка заменяет произвольный символ.
[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] — то же самое.

RewriteRule (.*) $1? [R=301,L]
Располагать после: RewriteBase /

Памятка по используемым символам и обозначениям

Строчка RewriteCond — условие выполнения правила RewriteRule. Если условие выполняется, то срабатывает редирект. Правила могут задаваться с помощью регулярных выражений.

Спецсимволы, используемые в правилах и их значения.

  • ^ — спецсимвол начала строки;
  • $ — спецсимвол конца строки;
  • ! — спецсимвол отрицания;
  • . — точка, заменяет любой символ, но только один;
  • () — группировка;
  • \ — «экранирующий» слеш, следующий символ после него считается обычным, а не спецсимволом;
  • # — начало текстового комментария в файле.

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

  • ? — символ повторяется 0 или 1 раз.
  • + — повторяется от 1 до 65536 раз.
  • * — повторяется от 0 до 65536 раз.

Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].

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

Источник