Измените DirectoryIndex, основываясь на домене / поддомене в .htaccess - PullRequest
11 голосов
/ 01 сентября 2011

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

Что я хочу сделать, это:

  1. Если пользователь заходит на domain1.com, DirectoryIndex должно быть: index.html
  2. Если пользователь заходит на mobile.domain1.com, DirectoryIndex должно быть: mobile-index.html
  3. Если пользователь заходит на post.domain1.com, DirectoryIndex должно быть: post.php
  4. Если пользователь заходит на voice.domain1.com, значение DirectoryIndex должно быть: vote.php

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

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

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

Ответы [ 3 ]

18 голосов
/ 02 сентября 2011

<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 голосов
/ 01 сентября 2011

Попробуйте это:

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]
0 голосов
/ 24 марта 2016

Вы можете установить, используя только файл 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

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