nginx链接末尾自动补全斜杠(nginx详细教程)

图片[1]-nginx链接末尾自动补全斜杠(nginx详细教程)-不念博客

如何在nginx链接末尾自动补全斜杠,下面不念就来讲一下详细步骤教程。

放在locaation里边就行

     location /new {
         root /data/;
         index index.html; 
      # 解决访问new 不加斜线时无法访问问题
      if ( -d $request_filename ){
          rewrite ^/(.*)([^/])$ https://$host/$1$2/ permanent;
      }
         try_files $uri $uri/ /new/index.html;
      if ($request_filename ~* .*\.(?:htm|html)$)
        {
            add_header Cache-Control "no-store"; 
        }
     }

这样,nginx就会进行判断了,如果请求的是一个文件夹,会自动在最后加上/符号,如果请求的是一个文件,则不会改变原有url

接下来对这段代码进行一个解释:

1、if (-d $request_filename),如果请求的是一个文件夹,则为真,进到if语句中执行
2、rewrite是执行url重写操作
3、^/(.*)([^/])$表示以/符号开始并紧跟着任何字符,同时不是以/为结束的字符串,在我的url中,(.*)表示的wordpres,([^/])表示的s
4、http://$host/$1$2/ 表示的重写后的地址,$host是请求的域名,$1是前面第一个括号里的内容,在我的url里就是wordpres $2是前面第二个括号里的内容,在我的url里是s
5、permanent表示,返回值是301 
# 变量解释
try_files  固定语法
$uri       指代home文件(ip地址后面的路径,假如是127.0.0.1/index/a.png,那就指代index/a.png)
$uri/      指代home文件夹
/index.html  向ip/index.html 地址发起请求


try_files $uri $uri/ /index.html;
尝试解析下列2个文件/文件夹(自动分辨出,IP后面的路径是文件还是文件夹), $uri/$uri/,
如果解析到,返回第一个,
如果都没有解析到,向127.0.0.1/index.html发起请求跳转(该路由必须真实,不然会报错)
© 版权声明
THE END