Nginx之proxy_pass指令url反斜杠作用

在nginx中配置proxy_pass代理转发时,其后面的url中反斜杠/ 的匹配处理时常出现意想不到的问题发生,以下说明两种情况:
(1)如果在proxy_pass后面的url加/,表示绝对根路径;
(2)如果在proxy_pass后面的url没有/,表示相对路径,把匹配的路径部分也给代理走。

下面四种情况分别用 http://127.0.0.1/proxy/test.html 进行访问测试

第一种情况:

location /proxy/ {
        proxy_pass http://127.0.0.1/;
}

最终会被代理到URL:http://127.0.0.1/test.html

第二种情况(相对于第一种,最后少一个 / ):

location /proxy/ {
    proxy_pass http://127.0.0.1;
}

最终会被代理到URL:http://127.0.0.1/proxy/test.html

第三种情况:

location /proxy/ {
    proxy_pass http://127.0.0.1/aaa/;
}

最终会被代理到URL:http://127.0.0.1/aaa/test.html

第四种情况(相对于第三种,最后少一个 / ):

location /proxy/ {
    proxy_pass http://127.0.0.1/aaa;
}

最终会被代理到URL:http://127.0.0.1/aaatest.html

原文地址:https://blog.51cto.com/10316297/2371936

时间: 2024-12-11 02:38:34

Nginx之proxy_pass指令url反斜杠作用的相关文章

URL结尾反斜杠对SEO的影响(转)

开始纠结网站URL加不加反斜杠对SEO的影响,还有些人把这个反斜杠说的神乎其神,我擦,本人手贱百度了一下,果然“博大精深”,敬请参考! 从百度站长平台的外链分析里,我们可以看到,一些目录结构的URL,搜索引擎是识别其带反斜杠和不带反斜杠的.以SEOWHY为例子,它分别统计了 www.seowhy.com/bbs 和 www.seowhy.com/bbs/ 的外链数.这说明,带不带反斜杠,在搜索引擎看到是不同的URL.至于你的情况,要不要统一加上反斜杠,我觉得你可以分析下在百度站长平台里的外链,看

网站URL网址末尾是否应该使用反斜杠

当对网站进行SEO优化时,难免会遇到因为URL导致的重复页面问题,其中一个比较常见的现象就是因页面地址后是否有添加反斜杠造成的,举例如下: 链接A: www.example.com/abc/ 链接B: www.example.com/abc 以上的两个链接唯一的区别就是结尾的反斜杠,其对应的内容相同,从普通用户角度而言,这样的链接其实就是一个,而从搜索引擎而言,不同的URL地址对应同样的内容,那么就容易被判断成重复内容,这也是我们在优化时最不愿意见到的现象. 那么网站在进行URL优化时,是否应该

URL中斜杠/和反斜杠\的区别小结

./SRC/  这样写表示,当前目录中的SRC文件夹: ../SRC/  这样写表示,当前目录的上一层目录中SRC文件夹: /SRC/   这样写表示,项目根目录(可以只磁盘根目录,也可以指项目根目录,具体根据实际情况而定) Unix使用斜杆/ 作为路径分隔符,而web应用最新使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符. Windows由于使用 斜杆/ 作为DOS命令提示符的参数标志了,为了不混淆,所以采用 反斜杠\ 作为路径分隔符.所以目前windows系统上的文

正斜杠(/)与反斜杠(\)区别

正斜杠,符号是"/";反斜杠,符号是"\". 一直很不解正斜杠与反斜杠到底有何区别?经过一段时间的理解,得出 DOS路径: E:\开发资料\ASP.NET高级开发   ...这是反斜杠的作用后面跟着的是文件名 csc /t:library /r:System.Web.dll /out:d:\CustomHandler.dll d:\CustomerHandler.cs  ...这就是正斜杠后面是一个名令的参数dir 是命令. Windows系统: 反斜杠\,在win

[Asp.net]c#中的斜杠和反斜杠

引言 在外地出差,给客户部署项目,三家做的项目要在一起集成,这就造成数据格式不同,路径中的斜杠和反斜杠造成了很大的问题. 查了一下这方面的资料,这里做一些记录,算是一个小结吧. 正斜杠(/)与反斜杠(\)总结 正斜杠/表示除法,分隔.在windows系统中通常用来分隔命令行参数,/表示选项等.不能作为文件名. 反斜杠\,在windows系统中用来表示目录. 而在unix系统中,/表示目录.由于web遵循unix命名,所以在网址(URL)中,/表示目录. C#中反斜杠\与斜杠/ 转移字符路径的问题

计算机中的正斜杠(/)与反斜杠(\)的区别

正斜杠,符号是"/";反斜杠,符号是"\". 一直很不解正斜杠与反斜杠到底有何区别?经过一段时间的理解,得出 DOS路径: E:\开发资料\ASP.NET高级开发   ...这是反斜杠的作用后面跟着的是文件名 csc /t:library /r:System.Web.dll /out:d:\CustomHandler.dll d:\CustomerHandler.cs  ...这就是正斜杠后面是一个名令的参数dir 是命令. Windows系统: 反斜杠\,在win

PHP关于反斜杠处理函数addslashes()和stripslashes()的用法

http://yangjunwei.com/a/589.html PHP自带的库函数 addslashes() 和 stripslashes() 都属于字符串处理类函数,作用正好相反: addslashes():对输入字符串中的某些预定义字符前添加反斜杠,这样处理是为了数据库查询语句等的需要.这些预定义字符是:单引号 (') ,双引号 (") ,反斜杠 (\) ,NULL. stripslashes():删除由 addslashes() 函数添加的反斜杠.该函数用于清理从数据库或 HTML 表单

斜杠(右斜杠)【/】 与 反斜杠(右斜杠)【\】

正斜杠 表示除法,分隔,在windows系统中通常用来分隔命令行参数,/ 表示选项等.不能作为文件名isiss/. 正斜杠"/"在某些文档里面表示"顿号",如通讯方式GSM/GPRS/3G,表示这三类通讯方式都可以支持. 反斜杠 在windows系统中,\ 用来表示目录. 而在unix系统中,/ 表示目录. 由于web遵循unix命名,所以在网址(URL)中,/ 表示目录. 鉴于不同的人对正反有不同的理解. 有部分中国国内的计算机使用者开始使用[撇斜杠]和[捺斜杠]

路径中 斜杠/和反斜杠\ 的区别

最近在项目中遇到了一个小问题,纠结了半天. 路径中使用斜杠/和反斜杠\的区别到底是什么.查阅了一些资料后可知. Unix使用斜杆/ 作为路径分隔符,而web应用最新使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符. Windows由于使用 斜杆/ 作为DOS命令提示符的参数标志了,为了不混淆,所以采用 反斜杠\ 作为路径分隔符.所以目前windows系统上的文件浏览器都是用 反斜杠\ 作为路径分隔符.随着发展,DOS系统已经被淘汰了,命令提示符也用的很少,斜杆和反斜杠在大