我面临以下问题,我使用 CNAME 为我拥有的域创建了一个子域。
简单来说:
subdomain CNAME domain
以下规则也相关:
www CNAME domain
@ A 1.2.3.4
现在奇怪的是,当我指向 www.subdomain.domain 时,我得到了 404。当我指向 subdomain.domain 时,我得到了预期的页面,但当我指向 www.domain.com 时,我得到的是子域页面,而不是域页面。我使用的是 Apache,两个 VirtualHosts,没什么特别的……但我真的不知道为什么使用 www.domain.com 会指向子域!有什么想法吗?
谢谢!Alex
编辑:这是域的 apache 配置:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName domain.com
DocumentRoot /var/www/domain/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/domain/>
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
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
这是子域名的文件:
<VirtualHost *:80>
# Server name
ServerName subdomain.domain.com
# Document root
DocumentRoot /var/www/subdomain/
</VirtualHost>
也就是说,我也改变了 CNAME,只是意识到我输入的值不正确,所以现在是这样的:
Name Type Value
subdomain CNAME subdomain.domain.com
答案1
做这个
CNAME“www”到“domain.com”,domain.com 到 1.2.3.4
CNAME“www”到“subdomain.domain.com”,subdomain.domain.com 到 1.2.3.4
# Vhost file #1
ServerName domain.com
domain.com DocumentRoot /var/www/domain/
# Vhost file #2
ServerName subdomain.domain.com
subdomain.domain.com DocumentRoot /var/www/subdomain/
CNAME 只不过是转发到另一个域名,因此 www.domain.com 将转到 domain.com。
您还可以创建一个 A 记录子域,它是一个指向 IP 地址的子域,如下所示:
A、A 记录“domain.com”到 1.2.3.4 A、A 记录“www.domain.com”到 1.2.3.4
在这种情况下,你可以在第一个 Vhost 文件中执行此操作
ServerName domain.com
ServerAlias www.domain.com
因此人们可以同时使用“www.domain.com”和“domain.com”来获取你的 IP 地址
答案2
Name Type Value
subdomain CNAME subdomain.domain.com
这实际上指向的是subdomain.domain.com.domain.com
因为你缺少了后面的点.com
但是,添加尾随的点将使其无效,因为您通过 CNAMEsubdomain
自身创建了一个循环。