Nginx指定域名跳转HTTPS,同时排除特定路径
|
freeflydom
2026年2月3日 16:47
本文热度 66
|
:Nginx指定域名跳转HTTPS,同时排除特定路径
网站有些文件是为老服务器做的,老服务器不支持https,此时不该强制跳转,要做判断,比如判断域名、路径或文件名,符合条件则不跳转,其他时候都强制跳转:
# 使用变量和条件判断
map $host $need_redirect {
default 0;
"www.aaa.cn" 1;
"aaa.cn" 1;
"www.bbb.cn" 1;
"bbb.cn" 1;
}
server {
listen 80;
server_name www.aaa.cn aaa.cn www.bbb.cn bbb.cn;
# 判断是否需要跳转
set $do_redirect 0;
# 如果域名需要跳转,且不是排除的路径
if ($need_redirect = 1) {
set $do_redirect 1;
}
# 排除的路径
if ($request_uri ~ ^/(admin/|manage\.php)) {
set $do_redirect 0;
}
if ($do_redirect = 1) {
return 301 https://$host$request_uri;
}
# 不跳转的请求继续处理
location / {
# 您的HTTP应用逻辑
}
}
该文章在 2026/2/3 16:48:15 编辑过