通过用户发请求的变量 $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
原文:https://www.cnblogs.com/alexlv/p/14851229.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!