Nginx 重写或重定向子文件夹

Nginx 重写或重定向子文件夹

我有一台安装了 NGINX 的 Debian 10 服务器。它正在为多个域提供服务。让我解释一下情况:

  • 我在名为 redirect.conf 的文件中设置了永久的 HTTP 重定向到 HTTPS。它负责将所有 http 域重定向到 https 域。效果非常好。所以如果有人要http://主机.域名.com它会重定向到https://host.domain.com. 那里没有问题。
  • 我现在正尝试为一个特定域设置到子文件夹的辅助重定向,但一直失败。浏览器一直告诉我重定向次数太多。

我非常希望发生以下事情:

  1. 在浏览器中输入 URL ==>http://主机.域名.com或者https://host.domain.com
  2. 您将被重定向至https://host.domain.com(效果很好)
  3. 进一步重定向至https://host.domain.com/subfolder(此处失败——浏览器抱怨重定向太多)。

有没有更好的方法?正如我在上面 (1) 中所说,无论您输入 http 还是 https,我都希望该特定域的最终结果转到 /subfolder。

以下是将特定域重定向到子文件夹 host-domain.conf 的代码:

server {
  ssl_certificate /etc/ssl/cert.pem;
  ssl_certificate_key /etc/ssl/key.pem;
  index index.php index.html;
  client_max_body_size 0;
  root /web;
  server_name host.domain.com;

 location / {
    return 301 https://host.domain.com/subfolder/;
  }

}

答案1

像这样:

location / {
  return 301 https://host.domain.com/subfolder$uri;
}

location /subfolder/ {
  try_files $uri $uri/index.html $uri.html =404;
}

相关内容