如何将主域根转移到子文件夹并阻止同时从主域访问插件域?

时间:2014-09-15 18:20:01

标签: apache .htaccess mod-rewrite shared-hosting

当我在智慧结束时,我再次转向SO。我的一个客户在一个托管计划上运行三个独立的网站。 我需要做的是将主域内容转移到子文件夹并将主域链接到它,以便

maindomain.com/

实际上已链接到

/maindomain/

我正在使用

RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com/$ 
RewriteCond %{REQUEST_URI} !^/maindomain/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /maindomain/$1  
RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$ 
RewriteRule ^(/)?$ maindomain/index.html [L]

第二部分是问题所在。我现在需要阻止插件域domainA和domainB从主域访问。为了使问题更复杂,domainA正在运行cakePHP,domainB正在运行一个完全依赖于它的.htaccess的自定义框架

域名位于webroot的子文件夹中

/domainA/

/domainB/

我尝试了以下操作,但它并未阻止访问附加域。

RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$ [NC]
RewriteCond %{REQUEST_URI} ^/domainA/(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/domainB/(.*)$ [OR]
RewriteRule ^(.*)$ - [L,R=404]

我真的可以使用一些有关如何做的见解。

1 个答案:

答案 0 :(得分:1)

将此规则放在/domainA/.htaccess/domainB/.htaccess文件中的非常优先的规则中:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?maindomain\.com$ [NC]
RewriteRule ^ - [L,R=404]