.htaccess перенаправление с главной страницы

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



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

htaccess перенаправление только главной

 

.htaccess перенаправление только главной

В примере на изображении выше имеется сайт example.com, в его DocumentRoot размещается еще ряд каталогов: dev1, dev2, dev3, dev4.  Работа с ними ведется как с отдельными сайтами, т.е. обращаясь к example.com/dev1 и example.com/dev2 и т.д.


Задача состоит в том, чтобы реализовать редирект на другой домен только с example.com оставив при этом доступ ко всем каталогам и всем другим URL.

 

Если сайт имеет только одну страницу перенаправление реализуется за счет Redirect

Redirect 301 /index.php http://www.exapmle.ru

 

С ресурсами на CMS так сделать не получится и требуется другая конструкция.

 

RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule !(.) https://www.example.ru/ [R=301,L]

 

За счет отсутствия $1 в конце перенаправление не будет работать для запросов помимо тех, что  адресованы непосредственно к домену.

 


Все каталоги, размещенные внутри DocumentRoot, таким образом останутся доступны по тому же адресу, при обращении к самому домену будет происходить редирект на www.example.ru с HTTP кодом 301.

Читайте о том, в каких случаях лучше настраивать редирект с HTTP кодом ответа 302 и отличиях от 301.