Как настроить 301 редирект? Редирект через .htaccess. Htaccess wordpress 301 редирект


3 редиректа .htaccess с которыми я часто сталкиваюсь

Блог  /  .htaccess  /  3 редиректа в .htaccess с которыми мне регулярно приходится сталкиваться

Пару дней назад лазил по закладкам в своём браузере и нашёл две ссылки на примеры того, как правильно сделать 301-й редирект со старого домена на новый с сохранением URL всех внутренних страниц сайта, а также как сделать редирект с www на без-www и наоборот. А так как закладок и так целая куча, я решил, что лучше объединить эти примеры в один пост у себя на сайте, кроме того, добавив ещё и пример с редиректом на https://.

Думаю, что в настоящее время практически на всех хостингах уже стоят все необходимые модули апач, но всё же я упомяну, что для работы всех примеров из этого поста вам нужен модуль mod_rewrite. Без него ничего не получится. Проверить это можно либо на деле, начав использовать эти примеры, либо при помощи функции phpinfo(), либо написав в супорт хостинга в конце концов.

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

1. Редирект со старого домена на новый с сохранением URL каждой страницы

Да, неоднократно приходится осуществлять переезд сайтов с одного домена на другой. Если это был какой-то тестовый домен, даже не индексируемый поисковиками, то можно не париться вообще. Однако если вам важно сохранить трафик, то нельзя оставлять это дело на самотёк, нельзя на старый сайт ставить загрушку «Сайт переехал», также нельзя использовать редирект через директиву Redirect 301, так как она все страницы старого сайта будет перенаправлять лишь на главную нового.

Нам же важно, чтобы каждый URL старого домена редиректил на ту же самую страницу на новом домене.

RewriteEngine On # truemisha.com - старый домен, truemisha.ru - новый, не забудьте заменить на свои значения RewriteCond %{HTTP_HOST} ^truemisha.com [NC] RewriteRule ^(.*)$ http://truemisha.ru/$1 [L,R=301]

2. Редирект с http:// на https://

Если ваш сайт на WordPress, то прежде всего вам нужно зайти в Настройки > Общие и добавить в оба поля с URL сайта https://. Более подробно об этом я уже писал здесь.

RewriteEngine on # если первая строка уже присутствует в вашем .htaccess файле, то второй раз вставлять её ни к чему RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [L,R=301] # дальше пойдут правила постоянных ссылок WordPress, если таковые имеются

3. Редирект на www

Аналогично предыдущему пункту, если вы реализуете данное на WordPress, то прежде всего вам нужно зайти в Настройки > Общие и выставить www там, и только потом уже можно что-то думать относительно .htaccess.

RewriteEngine On #понятное дело, что вместо truemisha.ru указываем URL собственного домена RewriteCond %{HTTP_HOST} ^truemisha.ru [NC] RewriteRule ^(.*)$ http://www.truemisha.ru/$1 [L,R=301]

и назад с www на без www:

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

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

Смотрите также

misha.blog

Как настроить 301 редирект? Редирект через .htaccess.

И снова здравствуйте!

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

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

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

А теперь обо всем по порядку. Что такое 301 редирект? Это обычное перенаправление посетителя на другую страницу или домен (о том, что такое домен и как его зарегистрировать, читайте тут). Сразу скажу, в этой статье я не буду рассматривать различные скрипты и сложные коды, я лишь покажу несколько простеньких вариантов перенаправления, которые любому веб-мастеру будет знать более чем достаточно.

Как настроить 301 редирект? Редирект .htaccess

Мы с вами будем рассматривать 301 редирект через .htaccess. Htaccess является служебным файлом конфигурации, который скрывает в себе массу возможностей. С помощью него можно запретить доступ к отдельным каталогам, указать кодировку страниц, установить защиту файлов и папок, сделать 301 редирект и т.д.

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

Если вдруг в корневом каталоге вашего сайта не окажется данного файла, создайте его самостоятельно. Самый простой способ создания файла .htaccess, воспользоваться FTP — клиентом FileZilla (о нем я писал здесь):

301 редирект html

Для этого перейдите в корневой каталог своего блога, нажмите в пустом поле правую кнопку мыши/Создать новый файл/Введите имя файла/.htaccess/ОК. После этого файл будет доступен для редактирования. Открыть его можно любым текстовым редактором, например Нотепад++.

Но бывают случаи, когда ftp — менеджер скрывает системные файлы, в том числе и .htaccess. Поэтому, если вы не обнаружите файл в корневом каталоге, не торопитесь его создавать. Для начала проверьте его наличие в скрытых файлах.

Для этого перейдите во вкладку «Сервер» и установите галочку напротив пункта «Принудительно отображать скрытые файлы». Если и в этом случае вы не найдете файл .htaccess, то тогда создайте его.

В каких случаях может понадобиться 301 редирект?

Начнем с самого главного!

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

Дело в том, что у любого ресурса в сети, один из вариантов доменного имени (с www или без www) должен быть главным. Вот простой пример относительно моего блога. Главным его доменом является http://blogiseo.ru, а www.blogiseo.ru — является его зеркалом. Главное зеркало блога, прописывается в файле robots.txt для Яндекса в виде директивы Host.

Если у вас нет файла robots.txt, обязательно изучите вот эту статью, там я все подробно расписал. Robots.txt в обязательном порядке должен присутствовать на каждом ресурсе. Иначе блог обречен на неудачу! Помимо robots.txt, вам необходимо указать главное зеркало сайта в Яндекс.Вебмастер.

Но так как в robots.txt оно уже указано, то я вам рекомендую оставить все на усмотрение робота. Для этого перейдите во вкладку «Настройки индексирования/Главное зеркало» и поставьте кругляшек напротив пункта «На усмотрение робота»:

301 редирект html

Для того, чтобы воспользоваться данной функцией, вы должны быть зарегистрированы в Яндекс.Вебмастер. О том, как это сделать я писал тут. До недавнего времени в панели инструментов для веб-мастеров Google, была похожая функция, где указывался основной домен, но после внесения последних изменений разработчиками, она исчезла.

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

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

Что касается приставки www, то она давным-давно должна была отмереть. Но так как в сети до сих пор существует множество ресурсов с префиксом www, то она имеет место быть. Для поисковых систем http://blogiseo.ru и www.blogiseo.ru это два абсолютно разных адреса! Да и пользователи частенько в строку браузера вбивают адрес ресурса именно с www, поэтому отмирать ей пока рановато. Исходя из этого, настройки зеркала, просто необходимы!

Последствия от неверной настройки зеркала

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

1. Все внешние ссылки будут распределяться между адресами с www и без www, в зависимости от того, как на вас будут ссылаться сторонние ресурсы или пользователи. Получается, что ваш блог будет лишен части ссылок, что отрицательно скажется на его продвижении и посещаемости. Но это не самое страшное!

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

Естественно, вы об этом даже и не догадываетесь и продолжаете развивать свой ресурс. Со временем он обрастет уникальным контентом, естественными ссылками и комментариями. Дела идут в гору, ну как тут не радоваться? Но вот беда! Поисковые системы, наблюдая за сайтом без приставки www, поставили на нем клеймо, за не уникальность! В итоге он перестанет индексироваться, а со временем полностью выпадет из индекса!

Вот это будет страшно и очень обидно! И чтобы избежать таких печальных ситуаций и был придуман 301 редирект.

Перенаправление с домена с www на без www и наоборот

Как настроить 301 редирект в этом случае? Все очень просто. Открываем файл .htaccess и копируем в него представленный ниже код.

Перенаправление с www на без www:

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

и наоборот:

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

Обратите внимание, что вместо vashdomen, в обоих случаях нужно указать доменное имя своего блога!

Сохраните файл .htaccess и переместите его обратно в корневой каталог с заменой старого файла. Теперь, как бы пользователь не вбивал адрес вашего блога в строку браузера (хоть blogiseo.ru, хоть www.blogiseo.ru, хоть http://www.blogiseo.ru), его в любом случае перенаправит на главную страницу.

Переезд с одного домена на другой

Аналогичной схемой редиректа 301, приведенной выше, можно воспользоваться при переезде с одного домена на другой. Но все же для наглядности приведу пример. Вы переезжаете с домена sait-1.ru на домен sait-2.com. В этом случае прописываем в файле .htaccess следующее:

RewriteEngine On RewriteCond %{HTTP_HOST} sait-1.ru RewriteRule (.*) http://sait-2.com/$1 [R=301,L]

Редирект при изменении ЧПУ ссылок

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

Приведу простой пример. Вы решили изменить название страницы. Старое имя страницы имело вид obo-mne.html, новое имя ob-avtore.html. В этом случае вам нужно будет прописать в файле .htaccess следующую конструкцию:

redirect 301 obo-mne.html http://www.vashdomen.ru/ob-avtore.html

Редирект при изменение расширения файла

Снова пример. Вам потребовалось изменить расширение файла stranica.html на stranica.php. Аналогично предыдущему пункту, прописываем в системном файле следующую строку:

redirect 301 stranica.html http://www.vashdomen.ru/stranica.php

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

Допустим, вы решили перенаправить пользователя на страницу с партнерской программой. Код партнерки выглядит следующим образом: http://www.partnerka.ru/?ref=35677. Увидев такую ссылку, большинство пользователей не будут по ней переходить, заранее зная о ваших намерениях.

Для того, чтобы ссылка приняла привлекательный вид, вам необходимо создать отдельную страницу, например dlya-partnerov.html, с которой и будет идти перенаправление пользователя на страницу с партнерской программой. Теперь останется разместить ссылку на страницу vashdomen.ru/dlya-partnerov.html, а в файле .htaccess прописать следующее:

redirect 301 dlya-partnerov.html http://www.partnerka.ru/?ref=35677

Но лично я для таких целей предпочитаю пользоваться несложным скриптом, о котором рассказывал в этой статье (способ №3).

На этом пожалуй все. Теперь вы знаете, как настроить 301 редирект и у вас не должно возникнуть с этим проблем. Я вам показал наиболее простой вариант 301 редиректа через .htaccess, о котором желательно знать каждому веб-мастеру. Ну и последнее, что хочется сказать, всегда проверяйте редиректы на работоспособность. На этом все, всем пока!

-->Подписаться на обновления блога<--

Как вам статья? А вы используете 301 редирект? Возможно, вам известны более легкие способы перенаправления? Жду ваши комментарии!

С уважением, Николай Коротков

blogiseo.ru

redirect - .htaccess 301 перенаправление не работает?

У меня есть статическая страница формы page1.html в моем корневом каталоге и другая страница index.php также в корневом каталоге. То, что я пытаюсь сделать, - это переместить все старые входящие ссылки, чтобы указать на каталог Wordpress. Я получил основной домен для перенаправления через .htaccess и index.php, которые я нашел на моем сайте поддержки хостинг-провайдеров (т.е. Abc.com теперь перенаправляется на мою папку для установки Wordpress).

Теперь проблема заключается в том, что все страницы, которые были напрямую связаны или индексированы, все еще появляются. Например, abc.com/page1.html все еще отображается. Я попытался использовать следующий код .htaccess для перенаправления на новый сайт:

redirect 301 /page1.html abc.com/index.php

Вышеприведенный код должен быть правильным из моего понимания, поскольку мой index.php загружает данные Wordpress (тот же метод, который используется для корректно работающего перенаправления abc.com), но по какой-то причине перенаправление не происходит.

Вот общий макет моего файла .htaccess.

# BEGIN WordPress redirect # This part is for the abc.com -> wordpress folder redirect. # Code taken strait from my hosting provider help tutorial. <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /WordpressInstallation/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /WordpressInstallation/index.php [L] </IfModule> # Problem code below # Static page redirects redirect 301 /page1.html /index.php redirect 301 /page2.html /index.php . . .

Любые идеи о том, что я делаю неправильно или как я могу достичь результата, который я ищу?

Edit:

Это может быть необязательная информация, но файлы page1.html, page2.html и т.д. находятся в корневом каталоге с файлом .htaccess, а установка wordpress находится в папке с именем wordpressInstallation в корневом каталоге. Я просто подумал, что я уточню, что если бы вопрос не сделал этого ясно.

/ ---wordpressInstallation ------Wordpress files (head.php, index.php, style.css etc.) ---page1.html ---page2.html . . . ---index.php ---.htaccess . . .

qaru.site


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта