Измените DirectoryIndex на основе домена/поддомена в .htaccess

У меня есть общий хостинг с одним доменом и одним поддоменем (для мобильных и клиентов). Каждый домен и поддомены имеют разные страницы индекса по умолчанию. Хостинговая компания сказала мне поместить все в мой файл .htaccess, так как у меня нет доступа к httpd.conf.

Я хочу сделать следующее:

  • Если пользователь переходит к domain1.com, то DirectoryIndex должен быть: index.html
  • Если пользователь переходит на mobile.domain1.com, DirectoryIndex должен быть: mobile-index.html
  • Если пользователь отправляет post.domain1.com, DirectoryIndex должен быть: post.php
  • Если пользователь отправляется на голосование .domain1.com, DirectoryIndex должен быть: vote.php

Изменить: Кроме того, если я перейду в domain1.com/page/, DirectoryIndex должен быть: index.html. Если я перейду на mobile.domain1.com/page/, DirectoryIndex должен быть: mobile-index.html

Что я могу поместить в файл .htaccess, чтобы изменить DirectoryIndex для каждого поддомена?

Спасибо, очень mich

Ответ 1

<IfDefine> не работает. <IfDefine> запускается только при запуске apache. Вы должны пойти с mod_rewrite решением. Посмотрите ответ @tzakrajs.

Вы можете использовать это в файле .htaccess:

SetEnvIf Host ^www\. page=www
SetEnvIf Host ^mobile\. page=mobile
rewriterule ^.*$ test.php?subdomain=%{ENV:page} [QSA,L]

Просто настройте весь свой поддомен, используя SetEnvIf, а затем просто дайте PHP сделать свою магию.

Ответ 2

Попробуйте следующее:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain1.com$
RewriteRule ^.*/$ index.html [R=302,L]
RewriteCond %{HTTP_HOST} ^mobile.domain1.com$
RewriteRule ^.*/$ mobile-index.html [R=302,L]
RewriteCond %{HTTP_HOST} ^post.domain1.com$
RewriteRule ^.*/$ post.php [R=302,L]
RewriteCond %{HTTP_HOST} ^vote.domain1.com$
RewriteRule ^.*/$ vote.php [R=302,L]

Ответ 3

Вы можете установить, используя только файл oyur .htaccess следующим образом:

RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ [NC]
RewriteRule DirectoryIndex index.html

RewriteCond %{HTTP_HOST} ^mobile.domain.com$ [NC]
RewriteRule DirectoryIndex mobile-index.html

...