Задать вопрос

Перенаправление в htaccess, универсальная реализация — как устроить?

Добрый день

Мне надо, чтобы при запросе subsite.mydomen.ru происходило перенаправление на medomen.ru/subdomains/subsite

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

Т.е. 'subsite' - должно быть что-то вроде переменной
______________________________________

Спасибо за решение от Алексея С.:

1) Настроить перенаправление всех поддоменов на корневую директорию сайта (мне это сделали через ТП)

2) Настроить .htaccess:
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_SUBDOMAIN} =""
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9][-a-z0-9]+)\.primer\.ru(:80)?$ [NC]
RewriteCond %{HTTP_HOST} !^www\.primer\.ru
# RewriteCond %{DOCUMENT_ROOT}/Subdomains/%2 -d
RewriteRule ^(.*) /Subdomains/%2/$1 [E=SUBDOMAIN:%2,L]
RewriteRule ^ - [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L]
  • Вопрос задан
  • 916 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Winsik
@Winsik
сис.админ, недопрограммист :)
Без настройки dns не обойтись , надо будет прописать *.вашсайт.ру на основной сайт и тогда все поддомены будут ломиться в одно место
69fe7e1c854449069996e57bca1a503b.PNG
, а вот там уже htaccess прописать реврайт на нужную подпапку (как сделать переадресацию 301 в комменты)

Настройка прозрачной переадресации в .htaccess
Требование:
Необходимо сделать переадресацию всех поддоменов, кроме www в подпапку, но при этом путь оставить как было в запросе. То есть в адресе браузера будет написано forum.primer.ru, а контент будет выводиться с адреса primer.ru/Subdomains/forum/
Решение:
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_SUBDOMAIN} =""
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9][-a-z0-9]+)\.primer\.ru(:80)?$ [NC]
RewriteCond %{HTTP_HOST} !^www\.primer\.ru
# RewriteCond %{DOCUMENT_ROOT}/Subdomains/%2 -d
RewriteRule ^(.*) /Subdomains/%2/$1 [E=SUBDOMAIN:%2,L]
RewriteRule ^ - [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L]

(закомментированная строка проверяет существование папки домена перед переходом, меня устраивает 404 ошибка, поэтому закомментировано)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ShamblerR
RewriteCond %{HTTP_HOST} !^www\.mydomen\.ru [NC]
RewriteCond %{HTTP_HOST} !^www\.(.*)mydomen\.ru [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.mydomen\.ru [NC]
RewriteRule ^(.*)$ http://mydomen.ru/subsite/%1$1 [R=301,L]
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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