Apache 将任何域的文档根目录更改为其自己的子目录

Apache 将任何域的文档根目录更改为其自己的子目录,apache,.htaccess,mod-rewrite,document-root,Apache,.htaccess,Mod Rewrite,Document Root,我正在尝试创建一个.htaccess文件,该文件将域的文档根目录更改为服务器上的子文件夹,而不实际更改最终用户的url。下面是我正在尝试做的一个例子: domain1.com将在/domains/domain1.com中查找web内容,但仍显示为domain1.com domain2.com将在/domains/domain2.com中查找web内容,但仍显示为domain2.com 每个域都将指向根目录/,因此我将.htaccess文件放在这里,/.htaccess 我不想把我所有的域都添

我正在尝试创建一个.htaccess文件,该文件将域的文档根目录更改为服务器上的子文件夹,而不实际更改最终用户的url。下面是我正在尝试做的一个例子:

  • domain1.com
    将在
    /domains/domain1.com
    中查找web内容,但仍显示为
    domain1.com
  • domain2.com
    将在
    /domains/domain2.com
    中查找web内容,但仍显示为
    domain2.com
每个域都将指向根目录
/
,因此我将.htaccess文件放在这里,
/.htaccess

我不想把我所有的域都添加到.htaccess文件中,我希望每个域都遵循这种格式


我试着学习.htaccess并自己创建一个,但是,我似乎没有办法做到这一点。我目前拥有的使每个域重定向到它的子目录,并给出一个“重定向太多”的错误

  • ie.
    domain1.com
    将最终用户重定向到
    domain1.com/domains/domain1.com
这是.htaccess文件的内容:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^(.*)$ /domains/%1 [L]
不错,试试这个:

RewriteEngine on
# remove www, externally for consistent domains
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule .* http://%1/$0 [NS,L,R=301]
# document root emulation
RewriteCond %{HTTP_HOST} .+
RewriteRule ^(?!domains/[^/]+/).* domains/%0/$0 [NS,L]
不错,试试这个:

RewriteEngine on
# remove www, externally for consistent domains
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule .* http://%1/$0 [NS,L,R=301]
# document root emulation
RewriteCond %{HTTP_HOST} .+
RewriteRule ^(?!domains/[^/]+/).* domains/%0/$0 [NS,L]