Исключения поддомена - PullRequest
       11

Исключения поддомена

5 голосов
/ 12 сентября 2008

У меня включен субдомен с подстановочными знаками, и я динамически анализирую URL, передавая его как есть моему index.php (например, somecity.domain.com).

Теперь я хочу создать несколько поддоменов, которые будут статичными, чтобы я мог установить другое приложение и не смешиваться с моим текущим (например, blog.domain.com).

Мой .htaccess в настоящее время читает:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Могу ли я манипулировать этим .htaccess для достижения того, что мне нужно? Можно ли это сделать через Apache?

Ответы [ 4 ]

1 голос
/ 12 сентября 2008

Ваш .htaccess не делает ничего полезного, так как Apache, вероятно, настроен с помощью DirectoryIndex index.php. Что ж, он перемещает domain.com/a в domain.com/index.php, но я сомневаюсь, что это то, что вы хотите.

Ваш виртуальный хост с подстановочными знаками работает, потому что в вашей конфигурации, вероятно, есть ServerAlias ​​* .domain.com или один виртуальный хост и DNS указывают на адрес вашего сервера. (Когда у вас есть один виртуальный хост, он появляется для любого запроса, и первый из перечисленных виртуальных хостов является по умолчанию)

Вы должны создать новые VirtualHosts для статических доменов, оставив по умолчанию один, а по умолчанию:)

Отметьте эти учебные пособия , которые объясняют все это.

0 голосов
/ 12 сентября 2008

Я не знаю, установлен ли на вашем хосте cPanel, но я смог сделать это, добавив новый поддомен * и затем отправив весь этот трафик на определенный поддомен, например: *.domain.com -> master.domain.com. Затем вы можете прочитать, по какому URL вы находитесь в master.domain.com и перейти оттуда.

0 голосов
/ 12 сентября 2008

Я не уверен, что полностью понимаю, что вам нужно сделать, но это может быть полезно для настройки виртуальных доменов в вашем файле конфигурации Apache. Вы можете сопоставить их с папками на диске с различными установленными приложениями. Каждый виртуальный домен рассматривается как корневой каталог. Моя среда разработки настроена локально на моей машине с Windows, примерно так:

NameVirtualHost *:80

# Begin virtual host directives.

<VirtualHost *:80>

# myblog.com virtual host.

ServerAdmin webmaster@myblog.com
DocumentRoot "c:/apache_www/myblog.com/www"
ServerName myblog.com
ServerAlias *.myblog.com
ErrorLog "c:/apache_www/myblog.com/logs/log"
ScriptAlias /cgi-bin/ "c:/apache_www/myblog.com/cgi-bin/"

<Directory "c:/apache_www/myblog.com/www">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

</VirtualHost>

Если это не поможет вам встать на правильный путь, попробуйте изучить директиву VirtualHost, чтобы найти решение. Я нахожу попытки сделать все это в .htaccess громоздким и трудным для управления.

0 голосов
/ 12 сентября 2008

Вам нужно будет настроить apache для этих статических поддоменов. «Поймать все» сайт будет настроен по умолчанию, так что один будет перехватывать другие.

...