1. В .htaccess добавляем следующий блок кода:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
</IfModule>
2. Когда в ссылках сайта меняются сразу несколько параметров, редирект лучше делать с помощью регулярных выражений. Для этого используется директива RedirectMatch 301.
Тогда, если старые ссылки были вида:
http://site1.ru
- корень сайта,
http://site1.ru/articles/
- папка со статьями
http://site1.ru/articles/statya-1.php
- ссылка на конкретную статью
А новые ссылки должны выглядеть так:
https://site2.ru
- корень нового сайта,
https://site2.ru/blog/
- статьи переименуются в блог,
http://site1.ru/articles/statya-1.html
- ссылка на пост блога имеет расширение html,
то код 301-редиректа будет такой:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RedirectMatch 301 ^/$ https://site2.ru/
RedirectMatch 301 ^/articles/$ https://site2.ru/blog/
RedirectMatch 301 ^/articles/(.*)php$ https://site2.ru/blog/$1html
</IfModule>
Если сайт посещаем и часто обходится ПС, то замена в поисковой выдаче старых ссылок на новые начнется уже через несколько дней. Сколько продлится перенос - зависит от объема контента.
Кстати, в Яндекс.Вебмастере есть специальный раздел “Переезд сайта”. В нем напрямую можно указать, на какой домен будет перенаправление.
Предварительно права на новый сайт должны быть подтверждены, а 301-редирект уже настроен.
Как сделать 301-редирект с www.site.ru на site.ru на https-протоколе
Код для .htaccess файла, чтобы перенаправлять с http на https и одновременно с www на без www.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>