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

时间:2015-06-07 21:00:33

标签: apache .htaccess mod-rewrite document-root public-html

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

所以结构是:

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

我在'/'的wamp中的所有相对路径的开头使用site1.com(例如/menu.php)并且它工作正常,但是当我上传到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网站。

有人能看到上面代码的问题吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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.htmlhttp://site1.com/index.html