подстановочный поддомен в .htaccess - PullRequest
0 голосов
/ 20 декабря 2011

Я хочу создать простую страницу, доступную для любого (подстановочного) субдомена.

Например, вы заходите на сайт hello.domain2.com, и на странице будет отображаться имя субдомена «hello».Также URL должен оставаться "hello.domain2.com".Это не должно быть слишком сложно, но, поскольку у моего хоста есть несколько доменов в 1 корне, мне придется настроить мой файл .htaccess.

Когда я проверяю htaccess, хост автоматически установил следующие правила:

RewriteEngine on    

RewriteCond %{HTTP_HOST}    ^www.domain1.com$
RewriteCond %{REQUEST_URI}  !^/domain1.com/
RewriteRule (.*)            /domain1.com/$1 [last]
RewriteCond %{HTTP_HOST}    ^domain1.com$
RewriteCond %{REQUEST_URI}  !^/domain1.com/
RewriteRule (.*)            /domain1.com/$1 [last]

RewriteCond %{HTTP_HOST}    ^www.domain2.com$
RewriteCond %{REQUEST_URI}  !^/domain2.com/
RewriteRule (.*)            /domain2.com/$1 [last]
RewriteCond %{HTTP_HOST}    ^domain2.com$
RewriteCond %{REQUEST_URI}  !^/domain2.com/
RewriteRule (.*)            /domain2.com/$1 [last]

RewriteCond %{HTTP_HOST}    ^www.domain3.com$
RewriteCond %{REQUEST_URI}  !^/domain3.com/
RewriteRule (.*)            /domain3.com/$1 [last]
RewriteCond %{HTTP_HOST}    ^domain3.com$
RewriteCond %{REQUEST_URI}  !^/domain3.com/
RewriteRule (.*)            /domain3.com/$1 [last]

До сих пор я настроил сервер на прием любого субдомена для моего domain2.com, номой хост перенаправляет все субдомены в мою корневую папку.

Как сделать так, чтобы субдомены с подстановочными знаками переходили на /domain2.com?

1 Ответ

0 голосов
/ 20 декабря 2011

Вы можете обменять блок правил domain2 на:

RewriteCond %{HTTP_HOST}    ^([\w-]+).domain2.com$
RewriteCond %{REQUEST_URI}  !^/domain2.com/
RewriteRule ^(.*)$          /domain2.com/$1?subdomain=%1 [LAST,QSA]

([\w-]+) - это подстановочный знак для имен серверов, а %1 можно использовать в качестве заполнителя в последующих RewriteRules. (Второй RewriteCond также может быть превращен в утверждение ..)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...