08.04.2017      1149      0
 

Редирект в файле htaccess как настроить правильно


Редирект в файле htaccess пишу как это постепенно сделала на своих блогах самостоятельно. Иногда прошу помочь программистов хостинга – sprinthost.ru. Программисты всегда охотно помогают и это самые правильные настройки. Это конфигурационный файл, посредством которого происходят изменения сервера. Встретила выражение, что .htaccess является сердцем сервера. От правильности заполнения его зависит индексация сайта. Например, постоянные редиректы, с кодом ответа сервера 301, сервис Яндекс вебмастер  размещает в “исключенные страницы”. Указывают переход на работающий адрес, чтобы не исчезали прежние ссылки на статью.

редирект в файле htaccess

Редирект в файле htaccess на адрес без www

С самого начала ведения сайта нужно определиться с зеркалами сайта / точными копиями/. По запросу, сайт может открываться как с www  так и без него. Но у меня долго открывались сайты по обеим зеркалам. Указатель зеркала должен находиться в конце  robots txt. Если сайт открывается по обеим зеркалам, то робот склеивает их, об этом написано здесь . Поисковые системы склеили зеркала одного сайта, но у второго – нет.  продолжалось это более 2 лет, обнаружила это случайно.

Для исправления ситуации, нужно сделать редирект в файле .htaccess.  Если постоянные ссылки мы строим, как ЧПУ, то лучше сделать редирект без www.

Путь к файлу .htaccess. Хостинг,  файловый менеджер, затем выберем нужный сайт, найдем и откроем  .htaccess,  вставим нужный код. Но вначале все коды внесем в блокнот notepad++, из него будем копировать.

<IfModule mod_rewrite.c>

&nbsp; Options +FollowSymLinks

&nbsp; RewriteEngine on

&nbsp; RewriteCond %{HTTP_HOST} ^www\.naschdomidacha\.ru$ [NC]

&nbsp; RewriteRule ^(.*)$ http://naschdomidacha/$1 [R=301,L]

</IfModule>

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

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

Перенаправление со старых статей на новые

Исправляла адреса страниц, потому  установила постоянный редирект 301.

RewriteEngine On

Redirect /about-us.html /about.html/

На втором сайте  код  другой, но тоже работает.

31.10.2017 Сейчас такой редирект не нужен, он автоматически действует в движке Word Press.

# BEGIN WordPress

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{QUERY_STRING} ^id=[\d+]$

RewriteRule ^page\.php$ /%1/ [R=301,L]

Перенаправление на адрес со слешь 

Далее обнаруживаю, что индекс содержит по 2 одинаковые статьи, по одной и той же дате. Адреса открывались со слешь / косая черта на конце ссылки/ и без слешь. Это тоже продолжалось долго, но затем установила перенаправление.

<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
</IfModule>

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

2020 год

Редирект без слешь, на адреса со слешь до сих пор остаются у меня в яндекс вебмастере. Но только находится все это в “исключенных страницах”.

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

<span style="background-color: #f4f4f4; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 12.8px;">RewriteEngine on</span>
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteCond %{HTTP_HOST} !^moylubimiblog.ru$
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/?wp\-config\.php\.bak$
RewriteRule .* - [F,L,NC]
</IfModule>
<IfModule !mod_rewrite.c>
<Files "wp-config.php.bak">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
</IfModule>
# BEGIN WordPress
#   `BEGIN WordPress`  `END WordPress`   .
#       WordPress.
#       .
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Может быть кому то пригодится.


Ваш комментарий

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