没有 `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.comip 添加新的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` 域无法工作的主要内容,如果未能解决你的问题,请参考以下文章

AD域外计算机共享域内打印机出现“无法访问,没有权限访问网络资源,用户不得从此工作站登录网络”

没有 www 前缀的 WP 站点无法正常工作

win11服务器上的安全数据库没有此工作站

无法让 CORS 工作(NodeJS)

将多个域重定向到一个域(之前有或没有 www)

无法使用位于其他域的 JS 工作文件构建“工作人员”