在cpanel操作中,主域名总是默认绑定在public_html目录下的,其他绑定的域名可以指定在public_html下面任意目录中,如host.storyday.com可以指定在public_html/host.storyday.com目录下。这个时候问题就来了,如果有多个网站,那么cpanel的这种模式就会导致其他网站的目录和主域名网站的文件混乱的排在一起,比如public_html(主域名的文件夹)文件下有文件: news index.php girls car.com,而car.com却是另外一个域名的主目录,这样管理多个域名就相当混乱了。所以如果把主域名的文件夹也放在public_html下,如文件夹storyday.com,bloggermap.org,cosbeta.com,一个目录对应一个顶级域名,这样就一目了然。然而cpanel本身却无法做到。那么要解决此方法,就只有用htaccess的urlrewrite来解决了。
解决办法如下:
- 在public_html中建立一个文件,名为.htaccess;
- 假设主域名是storyday.com,在public_html中建立一个文件夹storyday.com,主域名下的文件均位于文件夹中;
- 在.htaccess中输入以下内容:
RewriteEngine on
#假设storyday.com是你的主域名
RewriteCond %{HTTP_HOST} ^(www.)?storyday.com$
# 将storyday.com改成你主域名所对应的文件夹名
RewriteCond %{REQUEST_URI} !^/storyday.com/
# 下面两行不需要改变
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 将storyday.com改成你主域名所对应的文件夹名
RewriteRule ^(.*)$ /storyday.com/$1
RewriteCond %{HTTP_HOST} ^(www.)?storyday.com$
RewriteRule ^(/)?$ storyday.com/index.php [L]
补充:lxltop在留言中提出了一个更好的解决办法,就是绑定其他域名的时候,直接将域名绑定在和public_html同级别的目录下,不要被cpanel的默认绑定路径给误导了,如下图所示:


“那么cpanel的这种模式就会导致其他网站的目录在主域名网站的文件以及文件夹混乱的排在一起,”
我的已经混乱了。有没有方法解决啊。我用的是dede的CMS。网站是www.cnzaobao.com 要是早看到你这个文章就好了。 唉