将 sub.domain.com 重定向到 /var/www/subfolder 并将 sub.domain.com/api 重定向到 /var/www/apifolder
Redirect sub.domain.com to /var/www/subfolder and sub.domain.com/api to /var/www/apifolder
我想将 /api 文件夹从现有的虚拟主机重定向到新的 documentRoot(新虚拟主机)
domain.com -> /var/www/domain
sub.domain.com -> /var/www/sub
sub.domain.com/api -> /var/www/api
而且应该是递归的,所以sub.domain.com/api/v1
也应该到/var/www/api
。
这甚至可以用 apache 实现吗?
任何减少混淆的建议都将不胜感激;p
正如上面评论中所说,您可以为此简单地定义虚拟主机。您根本不需要任何重定向命令:
Listen 80
<VirtualHost *:80>
ServerName domain.com
DocumentRoot /var/www/domain
<Directory /var/www/domain>
# ...
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName sub.domain.com
Alias /api /var/www/api/index.php
<Directory /var/www/api>
# ...
</Directory>
DocumentRoot /var/www/sub
<Directory /var/www/sub>
# ...
</Directory>
</VirtualHost>
这显然假设您的 API
是由名为 /var/www/api/index.php
的脚本实现的。您当然可以将该实现保存为您喜欢的任何内容,例如 /var/www/api
。然而,这对我来说看起来不太现实,API 通常在脚本基础上实现,脚本通常需要包含文件,因此保存实现的文件夹确实有意义。而且我怀疑您是否想将所有这些文件都放入 /var/www
,因此我 假设 /var/www/api
旨在保留实现。
我在本地测试了这个设置,它对我有用。
我想将 /api 文件夹从现有的虚拟主机重定向到新的 documentRoot(新虚拟主机)
domain.com -> /var/www/domain
sub.domain.com -> /var/www/sub
sub.domain.com/api -> /var/www/api
而且应该是递归的,所以sub.domain.com/api/v1
也应该到/var/www/api
。
这甚至可以用 apache 实现吗?
任何减少混淆的建议都将不胜感激;p
正如上面评论中所说,您可以为此简单地定义虚拟主机。您根本不需要任何重定向命令:
Listen 80
<VirtualHost *:80>
ServerName domain.com
DocumentRoot /var/www/domain
<Directory /var/www/domain>
# ...
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName sub.domain.com
Alias /api /var/www/api/index.php
<Directory /var/www/api>
# ...
</Directory>
DocumentRoot /var/www/sub
<Directory /var/www/sub>
# ...
</Directory>
</VirtualHost>
这显然假设您的 API
是由名为 /var/www/api/index.php
的脚本实现的。您当然可以将该实现保存为您喜欢的任何内容,例如 /var/www/api
。然而,这对我来说看起来不太现实,API 通常在脚本基础上实现,脚本通常需要包含文件,因此保存实现的文件夹确实有意义。而且我怀疑您是否想将所有这些文件都放入 /var/www
,因此我 假设 /var/www/api
旨在保留实现。
我在本地测试了这个设置,它对我有用。