![apache 默认虚拟主机配置为 www 域名](https://linux22.com/image/799485/apache%20%E9%BB%98%E8%AE%A4%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E9%85%8D%E7%BD%AE%E4%B8%BA%20www%20%E5%9F%9F%E5%90%8D.png)
这是我的 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
您必须使用ServerName
和ServerAlias
参数告诉 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 键。然后在此处发布输出。