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

时间:2016-09-20 01:32:41

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

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

  • domain1.com会在/domains/domain1.com中查找网页内容,但仍会显示为domain1.com
  • domain2.com会在/domains/domain2.com中查找网页内容,但仍会显示为domain2.com

每个域都将指向根目录/,因此我将.htaccess文件放在/.htaccess

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

我尝试了解.htaccess并自己创建一个,然而,我似乎无法解决这个问题。我目前拥有的每个域都会重定向到其子目录,并且会出现错误#34;重定向太多"。

  • 即。 domain1.com将最终用户重定向到domain1.com/domains/domain1.com

这是.htaccess文件的内容:

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

1 个答案:

答案 0 :(得分:0)

不错,试试这个:

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]