Назад | Перейти на главную страницу

Настройка WordPress MU, wildcard dns и виртуальных хостов apache

Я управляю сервером, на котором работает WordPress MU. Различные блоги, размещенные на сервере, доступны как поддомены, например blog1.mydomain.tld, blog2.mydomain.tld и т. д.

Мне также нужно запустить собственное приложение (reports.mydomain.tld), используя тот же сервер.

Конфигурация моего виртуального хоста выглядит следующим образом:

NameVirtualHost mydomain.tld:80
<VirtualHost mydomain.tld:80>
    ServerName mydomain.tld
    ServerAlias *.mydomain.tld
    ServerAdmin admin@mydomain.tld
    DocumentRoot /usr/local/www/mydomain.tld

</VirtualHost>
<VirtualHost reports.mydomain.tld>
    ServerName reports.mydomain.tld
    ServerAlias reports.mydomain.tld 
    ServerAdmin admin@mydomain.tld
    DocumentRoot /usr/local/www/reports.mydomain.tld/app/webroot/

</VirtualHost>

Когда я пытаюсь получить доступ к субдомену reports.mydomain.tld, WordPress [остаток текста отсутствует]

Я бы не советовал использовать имена хостов в вашем VirtualHost и NameVirtualHost директивы. Вместо этого используйте IP-адреса или подстановочные знаки.

Кроме того, когда NameVirtualHost'ing и запрошенное имя хоста могут соответствовать любому виртуальному хосту, предпочтение отдается первому задействованному виртуальному хосту. В вашем случае это будет означать, что подстановочный знак улавливает все.

Также можно убрать посторонние ServerAlias.

Вместо этого попробуйте:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName reports.mydomain.tld
    ServerAdmin admin@mydomain.tld
    DocumentRoot /usr/local/www/reports.mydomain.tld/app/webroot
</VirtualHost>

<VirtualHost *:80>
    ServerName mydomain.tld
    ServerAlias *.mydomain.tld
    ServerAdmin admin@mydomain.tld
    DocumentRoot /usr/local/www/mydomain.tld
</VirtualHost>

Я бы порекомендовал следующее:


<VirtualHost mydomain.com:80>
  ServerName mydomain.com
  ServerAdmin admin@mydomain.com

  AddType application/x-httpd-php .php

  DocumentRoot /path/to/my/app/
  <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
    ExpiresActive On
    ExpiresDefault "access plus 1 year"
  </FilesMatch>

  RewriteEngine On
  RewriteRule (.*)-cb\d+\.(.*)$ $1.$2 [L]

  <Directory "/path/to/my/app/">
    Options Indexes FollowSymLinks ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

Ставить

<VirtualHost reports.mydomain.tld>
    ServerName reports.mydomain.tld
    ServerAlias reports.mydomain.tld 
    ServerAdmin admin@mydomain.tld
    DocumentRoot /usr/local/www/reports.mydomain.tld/app/webroot/

</VirtualHost>

выше

<VirtualHost mydomain.tld:80>
    ServerName mydomain.tld
    ServerAlias *.mydomain.tld
    ServerAdmin admin@mydomain.tld
    DocumentRoot /usr/local/www/mydomain.tld

</VirtualHost>

Должен сделать свое дело :)