使用.htaccess更改共享服务器中的文档根文件夹
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用.htaccess更改共享服务器中的文档根文件夹相关的知识,希望对你有一定的参考价值。
我是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
网站。
任何人都可以看到上面的代码的问题?
您无法通过.htaccess重新定义文档根目录。您必须为域创建不同的vhost,然后可以具有单独的文档根。
我最接近通过.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
以上是关于使用.htaccess更改共享服务器中的文档根文件夹的主要内容,如果未能解决你的问题,请参考以下文章