apache 默认虚拟主机配置为 www 域名

apache 默认虚拟主机配置为 www 域名

这是我的 apache 虚拟主机的默认配置

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
    Options +FollowSymLinks
    AllowOverride None
</Directory>

<Directory "/var/www/mydir">
    AllowOverride FileInfo Limit Options Indexes
   </Directory>
<Directory /var/www/>
    Options Indexes +FollowSymLinks MultiViews
    AllowOverride none
    Order allow,deny
    allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

这很适合http://我的域名.com但不是http://www.mydomain.com 如何使用 www 提供我的域名?

此问题仅针对默认域,我的其他域使用此配置文件即可工作

<VirtualHost *:80>
ServerName otherdomain.com
ServerAlias www.otherdomain.com
ServerAdmin webmaster@localhost

DocumentRoot /var/www/otherdomain

ServerSignature Off
<Directory />
    Options +FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/otherdomain>
    Options Indexes +FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
</Directory>

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/otherdomain.com_access.log combined
ErrorLog /var/log/apache2/otherdomain.com_error.log
</VirtualHost>

答案1

您必须使用ServerNameServerAlias参数告诉 apache 每个虚拟主机的服务器名称。

喜欢:

<Virtualhost *:80>
    ServerName mydomain.com
    ServerAlias www.mydomain.com whatever.mydomain.com
    ...
</Virtualhost>

答案2

如果你收到的响应是“未找到服务器”,那么我敢打赌您的 DNS 设置有问题。遗憾的是,由于您选择隐藏实际域名,因此这里没有人能够帮助您找出问题所在。不过,这里有一个简单的方法可以验证问题出在 DNS 还是 apache 配置上

首先,nslookup www.yourdomain.com在您浏览的同一台机器上执行此操作。您会得到 IP 吗?如果是,它是您期望的 IP 吗?

其次,不要使用浏览器访问服务器,而是使用 telnet 直接与服务器通信。如下所示:

[jenny@jennys:~]$ telnet your.server.ip.here 80
Trying your.server.ip.here...
Connected to your.server.name (your.server.ip.here).
Escape character is '^]'.
GET / HTTP/1.1
Host: www.yourdomainname.com

输入域名后,请确保按两次 Enter 键。然后在此处发布输出。

相关内容