2017-02-11 146 views
0

我有网站“firstdomain.com”与虚拟主机。然后我没有托管“secondomain.com”域名。我想从位于“firstdomain.com”网站主机上的文件夹将内容加载到“seconddomain.com”。但是这个文件夹在.htaccess所在的根文件夹之外。 Webhosting位于“var/www/vhosts/httpdocs/firstdomain.com/httpdocs”中,第二个演示文件夹位于“var/www/vhosts/httpdocs/firstdomain.com/seconddomain”中。Htaccess从根目录以外的文件夹加载内容

这段代码仅在两个演示文稿位于同一个根文件夹时才有效。这意味着第二个演示文稿位于文件夹“var/www/vhosts/httpdocs/firstdomain.com/httpdocs/seconddomain”中。但我不希望两个演示文稿都在同一个根文件夹中,因为安全(黑客攻击等)。我使用Apache的Plesk虚拟服务器。您能否告诉我如何修改这部分代码以加载根文件夹以外的内容的正确方式?

RewriteCond %{REQUEST_URI} !^/secondomain/ 
RewriteCond %{HTTP_HOST} secondomain\.com 
RewriteRule ^(.*)$ /seconddomain/$1 [L] 
+0

对不起,但尚不清楚你的实际情况。 “没有托管”是什么意思?您的http服务器是否设置为根本回答“seconddomain.com”?地址解析设置是否正确?如果没有,那么你可以做任何你可以想象的重写,这将无济于事。 – arkascha

+0

这意味着“firstdomain.com”是托管域名。 “Seconddomain.com”将域设置为“firstdomain.com”的别名,并从“firstdomain.com”文件夹加载内容。当这个文件夹位于“var/www/vhosts/httpdocs/firstdomain.com/httpdocs/seconddomain”时,一切正常。我的问题是我需要找到这个文件夹与根文件夹以外的secondomain内容。 – mira

+0

那么,您可以使用'Alias'指令在某个路径下发布您想要的任何文件夹,然后使用重写规则将请求重定向到该第二个主机名到该虚拟路径(该文件夹已发布到)。通过使用动态配置文件('.htaccess')出于显而易见的原因,这是不可能的,但只能在真正的http服务器主机配置中使用。 – arkascha

回答

0

您可以在规则中使用完整路径:

RewriteCond %{HTTP_HOST} seconddomain\.com 
RewriteRule ^(.*)$ /var/www/vhosts/httpdocs/firstdomain.com/seconddomain/$1 [L] 

但你还需要授予权限的Apache访问文件夹以外的文档根目录,在Directory块。这不是通常的做法。你不能只设置另一个VirtualHost

相关问题