Настройка htaccess. Поддомены

Нужно перенаправлять запрос с определенных поддоменов в определенные папки. Есть такие наработки:

RewriteCond %{HTTP_HOST} ^sub\.example\.ru$
RewriteCond %{REQUEST_URI} !^/sub/
RewriteRule ^(.*)$ /sub/$1 [L]

НО:

  1. При переходе по домену sub.example.ru не открывает статику.
  2. Никак не могу запретить переход по ссылке example.ru/sub/

Как грамотно распределять запросы по папкам с определенных поддоменов, а остальные направлять в index.html?


Ответы (1 шт):

Автор решения: dimixlol

Насчет запрета перехода по ссылке example.ru/sub/, могу предложить такое:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^sub1\/?(.*)$ "http\:\/\/example\.com\/sub1\/$1" [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^sub2\/?(.*)$ "http\:\/\/example\.com\/sub2\/$1" [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^sub3\/?(.*)$ "http\:\/\/example\.com\/sub3\/$1" [R=301,L]

Cтатика должна тоже открываться, т.к. весь контент будет в example.com/sub. К сожалению проверить не было возможности

Остальное можно преводить в index.html с помощью

ErrorDocument 404 /index.html
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com$
RewriteRule ^(.*)$ "http\:\/\/example\.com\/index.html" [R=301,L]

PS, для последнего редиректа необходимо будет создание *.example.com хоста в httpd.conf с DocumentRoot таким же как у example.com

→ Ссылка