服务器配置

nginx网址结尾自动加斜杠

我的站长站 2023-12-04 人阅读

方法一

location /app/ {
proxy_pass https://www.wdzzz.com/app/;
}

location /app {
proxy_pass https://www.wdzzz.com/app;
}

如果请求地址不带斜杠,浏览器301 Moved Permanently响应跳转到带斜杠地址。

当请求URL目录后面没有斜杠/ ,Nginx 配置中没有匹配的目录,就会自动 301到有斜杠/的目录。

方法二

URL尾部没有斜杠的自动跳转到带斜杠的URL网址。并且不影响其他文件。

if (!-f $request_filename){ 
rewrite ^(.*[^/])$ $1/ permanent; 
}

注意将上面三行代码放到你伪静态规则的尾部,这样不影响已经存在的规则。自己的规则匹配不到的情况下最后才会跳转。

这样可以针对目录,针对html结尾的就不好用了

if (-d $request_filename) {      
rewrite ^/(.*)([^/])$ http://$http_host/$1$2/ permanent;    
}

方法三

放在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发起请求跳转(该路由必须真实,不然会报错)


相关专题
nginx
nginx
2022-11-28 17

Nginx是一个高性能的HTTP和反向代理web服务器,也是站长常见的网站环境之一.nginx凭借高性能低消耗近几年越来越多站长使用,学习好nginx也成为站长必备知识点.我的...

相关推荐
  • Nginx配置
  • Nginx配置新手入门教程

    Nginx介绍Nginx是一个开源的高性能HTTP和反向代理服务器。它可以用于处理静态资源、负载均衡、反向代理和缓存等任务。Nginx被广泛用于构建高可用性、高性能的Web应用程序和网站。它具有低内存消耗、高并发能力和良好的稳定性,因此在互联网领域非常受...

    服务器配置 9 5个月前
  • nginx宝塔面板上传文件环境配置方法

    在使用nginx系统的宝塔面板开发上传或下载文件功能时,需要首先要配置下载nginx或PHP的参数。否则上传下载大文件时,总是报错,上传小一点的文件,就不报错。修改nginx配置打开nginx管理界面,看到“性能调整”,主要修改连接超时、最大上传文件大小,其他的也可...

    宝塔面板 55 1年前
  • nginx禁止直接访问目录或文件配置方法

    nginx禁止直接访问目录或文件,禁止后可以避免服务器文件直接暴露,用户无法通过链接访问下载某些目录文件。禁止访问某些后缀文件ini、conf后缀可以自行添加,通常为一些配置文件。location ~ \.(ini|conf|txt)$ {deny all;}禁止访问目录location ^~ /te...

    服务器配置 88 1年前
最新更新