2008-09-12 5 views
5

У меня есть поддомен подстановочного знака, который позволяет динамически анализировать 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?

ответ

0

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

0

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

NameVirtualHost *:80 

# Begin virtual host directives. 

<VirtualHost *:80> 

# myblog.com virtual host. 

ServerAdmin [email protected] 
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, чтобы быть громоздким и трудным в управлении.

1

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

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

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

Проверка thesetutorials, которые объясняют все это.

0

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