干货 | 宝塔(Nginx)开启强制SSL后如何实现二级目录不强制跳转

下文转自loc的 ukmg,本文记录备用。

起因:

看到有坛友发帖询问,如何让主域名自动跳转https,但是某个目录例如/123 不强制跳转 https

思路:

第一印象的直接添加额外一条规则,失败了。。    原因。nginx的配置中不支持if条件的逻辑与/逻辑或运算 ,并且不支持if的嵌套语法

替代方案:

set $flag 0;
if ($server_port !~ 443) {
        set $flag "${flag}1";
}

if ($request_uri !~ "123"){
        set $flag "${flag}2";
}

if ($flag = "012"){
         rewrite ^(.*)$  https://$host$1 permanent;
}

解释:满足非443 端口 并且 域名目录 非/123 时跳转

替换掉宝塔原来的:

    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }

测试:

http://tst.picp.men             跳转

http://tst.picp.men/123     不跳转

海拔科技

自媒体人,喜欢网络,热爱研究。本站头条号:星河 熊掌号:海拔科技

相关推荐

笔记|nginx image_filter 配置记录

nginx_image_filter http_image_filter_module 配置 第一种 http://nginx.org/en/docs/http/ngx_http_image_filter_module.html#image_filter_webp_quality 第二种:裁剪图片,不存储硬盘 访问 http://xxx.com/f …

Yum:[Errno 5] [Errno 2] No such file or directory

yum安装软件时,可以连接yum 仓库,但是下载安装时失败,报错如下 这个是因为系统之前升级过python,原来版本是2.7,升级python3后,yum 调用python找不到2.7的版本了 有两个配置文件需要修改 分别将文件开头的 …

Linux下使用rsync进行单台不同目录增量备份

网络上rsync的教程基本上是基于多台服务器(2台以上)进行讲解的,今天我这里有个应用场景,因为先前使用了WebDAV挂载了个本地目录,所以就想着使用rsync进行同一台服务器不同目录增量备份。 安装rsync centos7 …

CentOS 下挂载远程WebDAV为本地目录

本文主要内容主要讲解如何在centos操作系统下通过davfs2挂载WebDAV。本文实现基于CentOS7操作系统,理论上兼容6/7/8文章开始前我们先来了解下, 什么是WebDav   WebDAV (Web-based Distributed Authoring and V …