没有 `www` 域无法工作
Posted
技术标签:
【中文标题】没有 `www` 域无法工作【英文标题】:Domain doesn't work without `www` 【发布时间】:2012-04-25 12:00:33 【问题描述】:当我在没有www
(如http://example.com
)的情况下输入我的域名时,它不起作用并给出错误消息。但是,当我将www
添加到它(如http://www.example.com
)时,它可以工作。
它不应该双向工作吗(有和没有www
)?
【问题讨论】:
【参考方案1】:您只需将以下代码添加到您的根.htaccess
文件中:
RewriteEngine on
RewriteCond %HTTP_HOST !^www\.
RewriteRule ^(.*)$ http://www.%HTTP_HOST/$1 [R=301,L]
【讨论】:
如果您向人们解释这实际上是做什么的,那就太好了。这是一个使用相同代码的博客dense13.com/blog/2008/02/27/… 感谢@trainoasis 提供链接。它应该是不言自明的。它将 www 添加到域和任何子域或子文件夹等等...... 您需要了解正则表达式才能破译代码。第二行表示:如果 HTTP_HOST 不是 (!) 以 (^) "www." 开头,则将其放入内存中以供下一行使用。下一行说:从上一行捕获的内容中,匹配从开头 (^) 到结尾 ($) 的所有内容 (.*),并将所有内容(括号内)保存为 $1。然后将 $1 替换为“www”。加上 HTTP_HOST 变量。 在哪里添加这些代码?跟后端语言有关系吗? 我尝试使用此代码,但它对我不起作用。当我尝试在没有 www 的情况下访问我的网站时出现禁止错误。【参考方案2】:使用当前版本的apache,你需要做以下事情,与之前的版本相比有所改变:
cd /etc/apache2/sites-enabled
现在找到您的域的配置文件并编辑它(<VirtualHost *:80>
之后的前三行是我们需要的):
<VirtualHost *:80>
ServerName www.yourdomain.com
ServerAlias yourdomain.com *.yourdomain.com
ServerAdmin webmaster@localhost
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
</VirtualHost>
现在保存对文件的更改后,您应该重新加载 Apache 我们的服务器配置:
service apache2 reload
它会起作用的!
附:您可能还不想将*.yourdomain.com
添加到ServerAlias
行的末尾。
【讨论】:
ServerAlias www.yourdomain.com yourdomain.com
有效。谢谢。
@node_saini 如果对您有帮助,请为答案投票。 :-)
完成 :) 但这是正确的做法吗?不会有什么问题吧?
@node_saini 是的!您对您认为有帮助的问题和答案进行投票。其他人也应该这样做。 :-)
毫无疑问,它帮助了我,但解决问题有正确的方法和错误的方法,错误的方法并不意味着它不起作用,它会起作用,但它不是正确的方法。这是我唯一关心的 :)【参考方案3】:
解决这个问题
假设你想要mysubdomain.domain1.com
在domain1.com
的网络面板(cpanel、vestapanel 等)中转到您的 dns 记录设置
用domain1.com
的ip
添加新的A record
并用@
填写记录/主机名字段 // @ 表示没有www 如果你想要www 然后添加另一个新的A record
并将@
替换为 www
保存
等待 dns 更改发生可能需要几个小时
【讨论】:
【参考方案4】:或者,如果您使用 GoDaddy 和谷歌应用程序,您当然可以按照以下步骤解决此问题:
转到 Google Apps 并登录到域管理。
然后点击域设置。
然后点击域名。
然后单击突出显示的字词以通过谷歌应用程序设置重定向,您应该会在 3 小时或 MAX 2 天内看到它完成(尽管在极少数情况下通常不会超过一天)。只需按照那里有简单的英文说明,你应该看到它完成了。
更多细节和参考:
http://www.techproceed.com/2014/05/custom-domain-setup-on-blogger-with.html
【讨论】:
【参考方案5】:您需要将所有完整的 url 更改为路径。如果您的 php 包含或其他进程使用 url 链接,它只会以一种方式工作。
$.ajax(
url:'/LAYOUT/process.php'
与完整的网址相反
$.ajax(
url:'https://www.yourdomain.com/LAYOUT/process.php'
使用简单的路径将允许它在有或没有 www 的情况下双向工作。
【讨论】:
【参考方案6】:首先访问您的域名提供商网站。 第二次去dns记录。 第三个添加A记录IP去这个link
并复制4A记录并添加dns。
【讨论】:
以上是关于没有 `www` 域无法工作的主要内容,如果未能解决你的问题,请参考以下文章