使用.htaccess更改共享服务器中的文档根文件夹

问题描述 投票:0回答:2

我是apache服务器的管理员(在允许我托管多个域的托管包上),我在public_html中有一个域(让我们称之为www.ROOTwebsite.com)和托管在一个文件夹中的9个其他域与public_html相同的目录级别,称为DOMAINS

所以结构是:

-DOMAINS/site1.com/
        /site2.com/ ... etc
-public_html

我在'/'的wamp(例如/menu.php)的所有相对路径的开头使用site1.com并且它工作正常,但是当我上传到DOMAINS / site1.com /它弄乱了网站,因为它显然在寻找在public_html目录中作为ROOT。

我在.htaccess文件中使用了以下许多组合,但是我无法弄清楚将ROOT更改为NEXT到public_html的目录的正确语法,而不是像往常一样:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.ROOTwebsite.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^ROOTwebsite.gr$
RewriteCond %{REQUEST_URI} !DOMAINS/site1.com/
RewriteRule (.*) /DOMAINS/site1.com/$1 [L]

我希望更改site1.com的根目录,以便它也可以与'/'一起使用,而不会影响public_html网站。

任何人都可以看到上面的代码的问题?

apache .htaccess mod-rewrite document-root public-html
2个回答
0
投票

您无法通过.htaccess重新定义文档根目录。您必须为域创建不同的vhost,然后可以具有单独的文档根。


0
投票

我最接近通过.htaccess重新定义文档根目录如下(不完全是你要问的,因为在我的例子中,site1.com是主文档根目录的子目录,但这可以实现你想要的,警告如下)。

RewriteCond %{HTTP_HOST} ^site1.com$ [NC]
RewriteRule !^site1.com/ /site1.com%{REQUEST_URI} [L,NC]

这将有效地将所有site1.com重定向到site1.com子目录。 [告诫]我唯一无法解决的问题是如何将直接转到子目录的网址(如http://site1.com/site1.com/index.html)重定向到http://site1.com/index.html

© www.soinside.com 2019 - 2024. All rights reserved.