2

我在这里看到很多关于它的问题,所以我在这里发布:

我有一个域 www.example.com 并且我设置了 .htaccess 文件以将所有 example.com 重定向到 www.example.com

现在,我(通过我的 plesk 10 界面)创建了一个子域 abc.example.com,我想要也有 www.abc.example.com 所以我输入(也在 plesk 中)这个:

www.abc.example.com.    CNAME   abc.example.com.

但它不起作用。我需要重新加载/重新启动 dns 吗?(如果需要,请告诉我怎么做?)或者我只需要等待一段时间直到它传播?

由于我提到的 CNAME 不起作用,我还在 abc 文件夹中添加了 .htaccess (这可能是错误的(我知道,服务器人员不多:()),如下所示:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^abc.example.com$
RewriteRule ^(.*)$ http://abc.example.com/$1 [R=301]

但是没有运气,所以请说明一下。

4

2 回答 2

1

最终对我有用的解决方案:

在 Plesk 中,我创建了一个 subdomain.domain.com 指向让我们说abc文件夹,然后我也通过 Plesk 添加了 www.subdomain.domain.com 但将其指向同一个abc 文件夹。然后我在这个 abc 文件夹中添加了 .htaccess 文件(这个子域的所有其他文件都驻留在其中),现在可以保证对 subdomain.domain.com 的所有请求都被重定向到 www.subdomain.domain.com。这是我的 .htaccess 文件:

RewriteEngine On    
RewriteCond %{HTTP_HOST} !^www.subdomain.domain.com$ [NC]    
RewriteRule ^(.*)$ http://www.subdomain.domain.com/$1 [R=301,L]

希望这会帮助像我这样开始使用这些东西的人。

请注意,将 www.subdomain 指向同一文件夹内的想法归功于serverfault上的用户 Bryan White

于 2011-05-05T06:46:17.580 回答
0

.htaccess 应该是这样的:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^abc\.example\.com$ [NC]
RewriteCond %{SERVER_PORT} =80
RewriteRule ^(.*)$ http://abc.example.com/$1 [R=301,L]

RewriteEngine on
RewriteCond %{HTTP_HOST} !^abc\.example\.com$ [NC]
RewriteCond %{SERVER_PORT} =443
RewriteRule ^(.*)$ https://abc.example.com/$1 [R=301,L]

但是,和的DNS 条目可能尚未传播。在测试之前,您需要给它某个时间(可能是几个小时)。abc.example.comwww.abc.example.com

您可以在Windows上使用nslookup*nix来检查您的域何时可供全世界使用。

于 2011-05-04T16:49:46.473 回答