我想将/ 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
答案 0 :(得分:1)
正如上面在评论中所述,您可以简单地为此定义虚拟主机。您根本不需要任何重定向命令:
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
是为了保持实现。
我在本地测试了这个设置,它对我有用。