共享服务器上两个网站的htaccess配置

时间:2013-10-15 13:32:44

标签: html apache .htaccess redirect shared-hosting

基本上我有一个包含现有站点和新站点的共享服务器。在大多数共享主机帐户(linux)上,文件结构是这样的:

- public_html 
-- firstsite.com 
-- secondsite.com

对于有问题的服务器,结构更像是:

- public_html 
-- all of the folders and files of the first site loose in this directory 
-- secondsite.com

因此,如果我尝试从浏览器访问secondsite.com,我会被发送到此处: http://firstsite.com/secondsite.com

......这显然是不正确的。我的托管支持告诉我,如果我重命名firstsite.com使用的htaccess文件,secondsite.com将解析为: http://secondsite.com

我显然无法禁用我的htaccess文件,因为这会使第一个网站失效。

所以我正在查看我的htaccess文件并认为这是有问题的一行:

### Only allow access without the www. #### 
   RewriteCond %{HTTP_HOST} !^firstsite\.come$ [NC] 
   RewriteRule ^(.*)$ http://firstsite.com/$1 [R=301,L]

我想我需要一套与secondsite.com相关的类似规则?

任何建议都会很棒。

2 个答案:

答案 0 :(得分:0)

首先,RewriteRule将始终执行,因为RewriteCond中的域名无效,并且它将始终与该主机不同(您有.come)。

其次我认为你可以尝试将其添加为.htaccess file中的第一套规则:

RewriteCond %{HTTP_HOST} ^secondsite\.com$ [NC] 
RewriteRule ^(.*)$ /secondsite.com/$1 [QSA,L]

答案 1 :(得分:0)

你需要改变你的规则:

RewriteCond %{HTTP_HOST} !^firstsite\.come$ [NC] 
RewriteRule ^(.*)$ http://firstsite.com/$1 [R=301,L]

要:

RewriteCond %{HTTP_HOST} ^www\.firstsite\.com$ [NC] 
RewriteRule ^(.*)$ http://firstsite.com/$1 [R=301,L]

因此,当主机为secondsite.com时,规则不会尝试重定向回第一个site.com