设置 WordPress MU、通配符 DNS 和 apache 虚拟主机

设置 WordPress MU、通配符 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 [email protected]
    DocumentRoot /usr/local/www/mydomain.tld

</VirtualHost>
<VirtualHost reports.mydomain.tld>
    ServerName reports.mydomain.tld
    ServerAlias reports.mydomain.tld 
    ServerAdmin [email protected]
    DocumentRoot /usr/local/www/reports.mydomain.tld/app/webroot/

</VirtualHost>

当我尝试访问子域 reports.mydomain.tld 时,WordPress [剩余文本缺失]

答案1

我建议不要在VirtualHostandNameVirtualHost指令中使用主机名。而是使用 IP 地址或通配符。

此外,当 NameVirtualHost 和请求的主机名可以匹配任一虚拟主机时,则第一个遇到的虚拟主机优先。 在您的例子中,这意味着通配符捕获所有内容。

您还可以删除多余的ServerAlias

请尝试:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName reports.mydomain.tld
    ServerAdmin [email protected]
    DocumentRoot /usr/local/www/reports.mydomain.tld/app/webroot
</VirtualHost>

<VirtualHost *:80>
    ServerName mydomain.tld
    ServerAlias *.mydomain.tld
    ServerAdmin [email protected]
    DocumentRoot /usr/local/www/mydomain.tld
</VirtualHost>

答案2

我建议如下:


<VirtualHost mydomain.com:80>
  ServerName mydomain.com
  ServerAdmin [email protected]

  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>

答案3

<VirtualHost reports.mydomain.tld>
    ServerName reports.mydomain.tld
    ServerAlias reports.mydomain.tld 
    ServerAdmin [email protected]
    DocumentRoot /usr/local/www/reports.mydomain.tld/app/webroot/

</VirtualHost>

多于

<VirtualHost mydomain.tld:80>
    ServerName mydomain.tld
    ServerAlias *.mydomain.tld
    ServerAdmin [email protected]
    DocumentRoot /usr/local/www/mydomain.tld

</VirtualHost>

应该可以解决问题:)

相关内容