我在一台 Debian 机器上有一个 Apache Web 服务器。我使用 virtualmin 来管理虚拟主机。我现在在这个服务器上有两个站点,当我尝试访问一个 URL 中没有 www 的站点时,访问被拒绝。另一个站点没有问题。有问题的站点是一个 cakephp 应用程序,在 public_html 文件夹中有以下 .htaccess 文件。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
以下是问题域的指令。
SuexecUserGroup "#1001" "#1001"
ServerName mydomain.net
ServerAlias www.mydomain.net
ServerAlias webmail.mydomain.net
ServerAlias admin.mydomain.net
DocumentRoot /home/mydomain/public_html
ErrorLog /var/log/virtualmin/mydomain.net_error_log
CustomLog /var/log/virtualmin/mydomain.net_access_log combined
ScriptAlias /cgi-bin/ /home/mydomain/cgi-bin/
ScriptAlias /awstats/ /home/mydomain/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory /home/mydomain/public_html>
Options -Indexes +IncludesNOEXEC +FollowSymLinks +ExecCGI
allow from all
AllowOverride All
AddHandler fcgid-script .php
AddHandler fcgid-script .php5
FCGIWrapper /home/mydomain/fcgi-bin/php5.fcgi .php
FCGIWrapper /home/mydomain/fcgi-bin/php5.fcgi .php5
</Directory>
<Directory /home/mydomain/cgi-bin>
allow from all
</Directory>
RewriteEngine on
RewriteCond %{HTTP_HOST} =webmail.mydomain.net
RewriteRule ^(.*) https://mydomain.net:20000/ [R]
RewriteCond %{HTTP_HOST} =admin.mydomain.net
RewriteRule ^(.*) https://mydomain.net:10000/ [R]
RemoveHandler .php
RemoveHandler .php5
IPCCommTimeout 31
<Files awstats.pl>
AuthName "mydomain.net statistics"
AuthType Basic
AuthUserFile /home/mydomain/.awstats-htpasswd
require valid-user
</Files>
答案1
如果将 ServerName 与 ServerAlias 交换会发生什么情况?
ServerName www.mydomain.net
ServerAlias mydomain.net
然后尝试添加另一个虚假虚拟域。