.htaccess - 子域名不使用www

时间:2011-05-04 16:28:00

标签: .htaccess mod-rewrite plesk

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

我有一个域名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]

但没有运气,所以请说清楚。

2 个答案:

答案 0 :(得分: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指向同一文件夹的想法归功于用户Bryan White serverfault

答案 1 :(得分: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]

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

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