@mrSaizer

Редирект домена и поддомена через htaccess одним правилом?

Добрый день!
Мой htaccess на domain1 выглядит следующим образом:
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_URI} !^/file.php
  RewriteRule ^(.*) https://domain2.com/ [L,R=301]
</IfModule>


Редирект всех страниц на domain2, кроме одного файла.
Проблема в том, что редирект работает только для основного домена, для поддомена (например, sub.domain1) мое правило в htaccess уже не срабатывает.

В общем, тут и вопрос — как мне подкорректировать правила таким образом, чтобы абсолютно все страницы домена и поддомена domain1 редиректили на domain2, кроме одного файла?
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 1
Zettabyte
@Zettabyte
Проф. восстановление данных ▪ Вопрос? См. профиль
Если вы используете .htaccess, то с высокой вероятностью у вас нет доступа к конфигурации веб-сервера (Апача, либо его замены).
Также у вас, скорее всего, поддомен и домен имеют разные "домашние папки" - например, public_html\domain1.com и public_html\subdomain.domain1.com, если вы пользуетесь cPanel. Соответственно, при обращении к поддомену берутся файлы из его домашней директории, и одним .htaccess не обойтись - они берутся из разных папок.

Я вижу два варианта:
  1. Задать и домену и поддомену качестве домашней (корневой) одну и ту же папку. Тогда их будет обслуживать один и тот же .htaccess. Но и все остальные файлы будут также одинаковыми.
  2. Положить .htaccess на один уровень выше домашних папок домена и поддомена. Для примера выше это будет public_html. Однако, этот вариант надо тестировать отдельно. На разных панелях (а может и на разных серверах) это работает по-разному. Кроме того, чтобы общий .htaccess работал, в обеих корневых папках не должно быть своего .htaccess. Иначе будет применяться последний.

Htaccess для пункта 1 будет примерно таким (ваше исключение с file.php нужно сохранить):
RewriteCond %{HTTP_HOST} ^(.*\.)?domain1\.ru$
RewriteRule ^.*$ https://domain2.ru/$0 [L,R=301]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы