.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.

Сказать спасибо