Fork me on GitHub

nginx--当用户访问到公司网站的时输入了一个错误的URL,可以将用户重定向至官网首页

通过用户发请求的变量 $request _filename 

location / {
#当用户访问错误页面,自动跳转到首页
        if ( !-e  $request_filename ) {                                                                                           
                rewrite ^/(.*)$ https://www.test.com/ ;
                }
        }

-e 判断是否存在, !-e 取反(感叹号和-e必须连着一起写)

  修改虚拟主机配置文件:

server {
        listen 443 ssl;
        listen 80;
        server_name www.test.com;
#指定家目录所在位置
        root /data/testcom/;
#秘钥和证书的具体位置
        ssl_certificate /etc/nginx/ssl/test.com.crt;
        ssl_certificate_key /etc/nginx/ssl/test.com.key;
        ssl_session_cache shared:sslcache:20m;
#ssl会话超时时间 10分钟
        ssl_session_timeout 10m;
#生成独立的日志文件,采用main格式,这个格式是在nginx的主配置文件中定义的
        access_log /var/log/nginx/test.com.log main;
#设置当使用https访问任意目录,自动跳转到https
         location / {
#当用户访问错误页面,自动跳转到首页
        if ( !-e  $request_filename ) {                                                                                           
                rewrite ^/(.*)$ https://www.test.com/ ;
                }
        }
}

测试访问:

#直接访问主页
[20:13:13 root@localhost certs]#curl www.test.com
This is the test.com test page
#访问一个不存在的错误页面,会自动跳转到主页
[20:13:19 root@localhost certs]#curl www.test.com/aaa -Lk
This is the test.com test page

 

posted @ 2021-06-04 20:14  Alex-Lzy  阅读(371)  评论(0编辑  收藏  举报