我有一台安装了 NGINX 的 Debian 10 服务器。它正在为多个域提供服务。让我解释一下情况:
- 我在名为 redirect.conf 的文件中设置了永久的 HTTP 重定向到 HTTPS。它负责将所有 http 域重定向到 https 域。效果非常好。所以如果有人要http://主机.域名.com它会重定向到https://host.domain.com. 那里没有问题。
- 我现在正尝试为一个特定域设置到子文件夹的辅助重定向,但一直失败。浏览器一直告诉我重定向次数太多。
我非常希望发生以下事情:
- 在浏览器中输入 URL ==>http://主机.域名.com或者https://host.domain.com
- 您将被重定向至https://host.domain.com(效果很好)
- 进一步重定向至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;
}