可能重复:
在 Ubuntu 上启用无需“www.”的访问
我刚刚建立了我的第一个网站并购买了我自己的首个域名,但问题出现了。
我注意到我只能在 URL 开头使用 WWW 来进入我的网站,例如,这将适用于 WWW.DOMAIN.COM,但这对于 DOMAIN.COM 则不起作用
我需要做什么才能让它工作?提前谢谢您!
答案1
这里有两个主要考虑因素:DNS和虚拟主机配置。
DNSwww.domain.com
是计算机将名称解析为 IP 地址以确定名称所指代的网络计算机的系统。技术上A子的域名domain.com
(尽管很少被这样对待),并且可以解析到与域名根不同的 IP 地址。通常的方法是创建www.domain.com
指向 的CNAME(别名)记录domain.com
。这意味着如果您的服务器的 IP 地址发生变化,您只需更新域名根的 A 记录,然后系统www.
就会照做。您的主机/域名注册商应该为您提供一个控制面板,允许您修改域名的 DNS 记录 - 如果没有,或者您不确定如何执行此操作,您应该联系您的托管公司寻求帮助。
虚拟主机是一种允许一台服务器负责多个域提供的服务的系统。共享托管环境使用此类系统。为了使其正常工作,需要告知服务器它负责哪些域。实现此目的的方法多种多样,但关键点在于,由于域的根和www.
在技术上不同,因此需要告知服务器它们实际上引用的是同一资源。这很可能是您的托管公司的责任,以确保配置正确,如果您的 DNS 配置正确但仍然遇到问题,您应该联系他们让他们检查配置。
答案2
这里存在许多潜在问题,但最可能出现的两个问题可能是:
Apache 配置:检查您的 vhosts 配置,并确保已为该域指定别名。例如:
<VirtualHost *:80> ServerName yoursite.com ServerAlias www.yoursite.com DocumentRoot /path/to/root ErrorLog /path/to/logs/error.log CustomLog /path/to/logs/access.log combined </VirtualHost>
DNS 配置:确保当您 ping yoursite.com 和 www.yoursite.com 时,它们都指向同一台服务器。您的 DNS 配置可能将 www 子域指向不同的服务器。
答案3
您应该查看代码的根目录是否为 www。如果是,我建议您执行以下操作:1. 将所有代码(从 www )上移一级(假设您有 /trunk/www,因此将您的代码移至 trunk)。2. 将 www 目录替换为指向“trunk”目录的名为 www 的快捷方式。
如果这不起作用,您应该查看 htaccess,以便可以将对 DOMAIN.COM 的调用重定向到 WWW.DOMAIN.COM。
希望这能有所帮助,问候,亚历克斯
答案4
如果您有权访问 php.ini 文件,则可以在那里进行更改,但我猜您没有。另一种方法是创建一个名为 .htaccess 的文件并将其放在您网站的根目录中。将以下内容添加到文件中:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yoursite.com [NC]
RewriteRule ^(.*)$ http://www.yoursite.com/$1 [L,R=301]
当然,将“yoursite.com”更改为您的实际域名。