Nginx 将子域名重写为子目录而不更改 URL

Nginx 将子域名重写为子目录而不更改 URL

我已经使用 Appserv 一段时间了,现在转到 Nginx。当我在 Appache 下运行我的网站时,我在 .htaccess 文件中进行了此配置,以便将子域链接到子目录。

#Redirect API subdomain to API folder
RewriteCond %{HTTP_HOST} ^api\.domain\.com$
RewriteCond %{REQUEST_URI} !^/request/
RewriteRule (.*) /request/$1

我尝试将此配置添加到 nginx.conf 文件中以执行相同操作:

location ^~ /request/ {
    rewrite ^/request/(.*) http://api.example.com/$1 permanent;
}

似乎不起作用,因为我被重定向到主域 URL。如何在 Nginx 中做到这一点?

答案1

有几种不同的方法可以做到这一点,但我更喜欢易于阅读的方法:

    location / {
        if ($http_host = api.domain.com) {
            try_files /request$uri =404;
        }
    }

nginx 文档转换 Apache 重写规则。

相关内容