重写 public_html 文档根目录到根目录下的文件夹

Rewrite public_html document root to a folder in root directory

所以我有 2 个站点,只需将它们命名为 example.comadmin.example.com

目录结构:

home/username
|- example-site
|...
|- public_html
   |- admin

这两个网站是用不同的框架构建的。现在,如果没有合适的 .htaccess 文件,当我尝试访问 example.com 时,它会显示 public_html 文件夹中的文件列表,并且 admin.example.com 工作正常。

因此,我正在尝试将 example.com 的文档根目录从 /home/username/public_html 移动到 /home/username/example-site 带有 .htaccess 文件,但我似乎找不到适合我需要的合适格式。有什么想法吗?

我建议您将文件夹“example-site”移动到文件夹“public_html”(您可能还想重命名它):

home/username
|...
|- public_html
   |- example-site
   |- admin

然后您实施一个重写规则,将所有 将管理子域指定为 http 主机的请求映射到该文件夹​​中:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^admin\.example\.com$
RewriteCond %{REQUEST_URI} !^/example-site/
RewriteRule ^ /example-site%{REQUEST_URI} [L]

作为替代方案,您还可以实施积极条件:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteCond %{REQUEST_URI} !^/example-site/
RewriteRule ^ /example-site%{REQUEST_URI} [L]