将sub.domain.com重定向到/ var / www /子文件夹,将sub.domain.com/api重定向到/ var / www / apifolder

时间:2016-10-05 22:07:38

标签: apache .htaccess redirect server virtualhost

我想将/ 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

1 个答案:

答案 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是为了保持实现。

我在本地测试了这个设置,它对我有用。