nginx url自动加斜杠问题

一、首先对比说明Nginx以下两个现象:

1. 访问的uri最后带斜杠

  http://localhost/product/    >>>>  查找 product下的index页面,存在就返回;不存在且未开启自动索引目录选项(指令是:autoindex on),则报403错误

2. 访问的uri最后不带斜杠

  http://localhost/product     >>>>  查找product文件,存在就返回;若存在product的文件夹,会产生301跳转,且自动将uri补全为http://localhost/product/ ,跳转的域名由server_name_in_redirect 指令控制(下文介绍)

二、server_name_in_redirect 指令配置

1、server_name_in_redirect on ,URL 重定向为: server_name 中的第一个域名 + 目录名 + /;例如 配置文件中 server_name  www.baidu.com;  则http://localhost/product   时会重定向到http://www.baidu.com/product/(这是个坑)
2、server_name_in_redirect off (默认值)URL 重定向为: 原 URL 中的域名 + 目录名 + /。

原文地址:https://www.cnblogs.com/jedi1995/p/11320357.html

时间: 2024-10-10 03:18:42

nginx url自动加斜杠问题的相关文章

JSP编程,url中加斜杠和不加斜杠的区别

JSP编程,url中加斜杠和不加斜杠的区别(sendredirect,requestdispatcher,servlet,filter) 转自:http://blog.csdn.net/tanyit/article/details/7319372 url中加斜杠”/”和不加斜杠的区别: 设webapp为web程序包名 通常来说,不加斜杠的形式(如”example.jsp”)请求的是相对于当前页面路径的资源 http://localhost:8080/webapp/examole: 加斜杠的形式(

wordpress代码实现分类目录末尾加斜杠/

wordpress代码实现分类目录末尾加斜杠/ ,最近看到许多同学使用wordpress时候有很多问题,比如就添加斜杠来说:很多博客都使用了插件形式,我们知道插件形式会拖慢速度,第二因素:别人编辑的插件长久时间不更新,导致更PHP开源程序不融洽.那么为了用代码实现小慕给大家贴出了以下代码,直接复制到主题的functions.php文件下即可. 1 <?php 2 //wordpress目录自动增加斜杠 3 if (is_admin()) return; 4 $permalink_structur

ereg()替换为preg_match(),ereg_repalce替换为preg_replace得加斜杠

PHP 5.3 ereg() 无法正常使用,提示“Function ereg() is deprecated Error”是因为它长ereg 函数进行了升级处理,需要像preg_match使用/ /来规则了,当然也是php5.3把ereg给废掉的节奏了. PHP 5.3 ereg() 无法正常使用,提示“Function ereg() is deprecated Error”.问题根源是php中有两种正则表示方法,一个是posix,一个是perl,php6打算废除posix的正则表示方法所以后来

POST对URL中末尾斜杠的差异

在调试一个接口,php的,文件名是index.php,放在目录/checkmail/下. 访问时的url写的是/checkmail,调用时用的是JQuery的post方法. 开始发现,被调用时检查传入的参数没有传过来. 跟踪了传过来的所有参数,发现$_SERVER['REQUEST_METHOD']得到是GET. 明明是POST调用的,为什么得到的是GET呢? 先百度了一下,没找到答案. 于是各种尝试,最后在调用的url中,把反斜杠/加上,发现参数得到了. 也就是说,/checkmail 和 /

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

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

UEditor文本浏览器,引号加斜杠解决

UEditor输入的时候,总会在双引号前面加上"\"斜杠,每存一次就有一次,试了几种方法,都不行,后来查到是PHP的防注入功能生成的反斜杠. htmlspecialchars是一个函数,功能是把html标签转化为字符串html htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符. 记录一下这两种方法 PHP程序为了防止注入或者溢出,通过PHP 指令 magic_quotes_gpc自动在双引号.单引号.反斜杠.NULL前面添加反斜杠&quo

关于tomcat会在url末尾自动追加斜杠(/)

今天,突然发现一个问题, 比如我的请求路径为  http://ip:port/my_project/myapp, 在浏览器中敲入这个地址,然后会显示 http://ip:port/my_project/myapp/,即末尾自动追加了/ ... 原因:应用根目录下有myapp这个目录,tomcat就会在访问/myapp时自动转到/myapp/ 解决办法1:把myapp这个目录删掉就不会自动跳转了. 个人始终觉得这不是一个好方法. 解决方法2:带发现.

nginx 目录自动加斜线”/”

默认配置当你访问http://abc.example.com/dir 时不会加”/” 常见做法 if (-d $request_filename){  rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;      } 更佳的替代方法 optimize_server_names off;#优化服务器名称:关server_name_in_redirect off;#服务器名称重定向:关 http://wiki.codemongers.com/Ngi

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