有没有办法配置 Nginx 逐行读取文件来确定何时应强制实施 HTTPS,而不是将所有 URL 放入条件检查中?或者有没有办法将两者结合起来?两个值得关注的领域是组织和长期管理这些 URL 的能力。我们正在考虑将其移至应用程序层,但 Nginx 似乎可以更快地评估这一点。目前我们只是使用正则表达式。
答案1
map $uri $example_com_preferred_proto {
default "http";
~^/sign-up/ "https";
~^/account/ "https";
}
server {
listen 80;
server_name example.com;
if ($example_com_preferred_proto = "https") {
return 301 https://example.com$request_uri;
}
# root /var/www/example.com/html;
# other stuff
# ...
# location / {
# ...
# }
}