URL大小写敏感之谜
URL其实就是我们浏览器地址栏的地址,一般由三部分组成:
- 协议名称,一般就是http
- 域名,也就是主机名
- 资源路径
如链接:http://www.w3school.com.cn/js/js_obj_regexp.asp
http是协议部分,www.w3school.com.cn是域名部分,/js/js_obj_regexp.asp是资源路径部分。
- 对于服务器来说,前两个是大小写不敏感的,但是一般情况下,协议名称和域名部分如果有写成大写的浏览器会在请求的时候帮我们改成小写的,所以服务端后台不用考虑这一点。
- 实际上大小写是否敏感依赖于操作系统的文件系统。
- 至于资源路径,对于运行在window系统上的IIS服务器对资源路径大小写不敏感,但是对于运行在Unix和Linux系统上的服务器Apache对资源路径的大小写是敏感的,如果有大小写错误会返回404页面。
大小写不敏感示例:
如:http://www.w3school.com.cn/js/js_obj_Regexp.aSp 是可以访问到的,而且访问成功时地址栏的地址并没有把大写改成小写的。
如果想要解决Apache大小写敏感导致页面访问失败的问题,可以有以下解决方案:
- 当访问链接有大小写错误时返回301错误码并提示重定向到正确的链接,可以通过mod_spelling模块实现。
- 使用mod_rewrite规则强制进行大写向小写转换
另外,如果get请求后面有参数的话,key和value都是大小写敏感的。
URL大小写敏感之谜的更多相关文章
- linux+apache url大小写敏感问题
Linux对文件目录大小写敏感,URL大小写敏感会导致网页打不开,解决方法之一是启用Apache的mod_speling.so模块. 1.确认/usr/lib/httpd/modules目录下是否存在 ...
- 解决ubuntu中apache2的url大小写敏感问题。
cd /etc/apache2/mods-enabled ln -s ../mods-available/speling.load speling.load ln -s ../mods-availab ...
- ThinkPHP第四天(U函数,URL类型参数配置,伪静态后缀名配置,数据传递与获取$_GET等)
1.U('地址','参数','伪静态','是否跳转','是否显示域名'); 在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码. 在模 ...
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...
- TP框架 ---空控制器和空操作
通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控 ...
- tp
ThinkPHP php框架 真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分 ...
- ThinkPHP 常用配置项列表
//数据库配置 DB_HOST 主机名 DB_USER 用户名 DB_PWD 密码 DB_NAME 数据库名 DB_PREFIX 表前缀 LOAD_EXT_FILE=>'function lis ...
- ThinkPHP模板的知识(比较全的知识)
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...
- Think PHP 基础
ThinkPHP 一.什么框架: 一堆代码的集合,里边有变量.函数.类.常量,里边也有许多设计模式MVC.AR数据库.单例等等. 框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次. ...
随机推荐
- PHP大数组,大文件的处理
[原文来自于转载, 但他的结论不太正确, 尤其对foreach的判断这块上, 我拎过来进行修理 ] 在做数据统计时,难免会遇到大数组,而处理大数据经常会发生内存溢出,这篇文章中,我们聊聊如何处 ...
- [洛谷]P3704-数字表格
[洛谷]P3704-数字表格 妙啊,这又是一道反演题,而且个人感觉比较高级 传送门 大意 在\(N\times M\)的数表\(a\)中,\(a_{i,j}\)表示f((i,j)),其中\((i,j) ...
- SpringBoot配置全局自定义异常
不同于传统集中时Springmvc 全局异常,具体查看前面的章节https://www.cnblogs.com/zwdx/p/8963311.html 对于springboot框架来讲,这里我就介绍一 ...
- (第03节)三种ApplcationContext的实现
- linux下的shadow文件解释
/etc/shadow //用户密码文件登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 root:$1$202cb962ac59075b964b0 ...
- vue过渡动画效果
1 过渡基础 1.1 过渡的方式 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果. 包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS ...
- nodejs--http
http模块主要用到四个方法: 1.Server类 const http = require('http'); let server = new Server(); server.on('reques ...
- PHP 使用程序进行数据库字典文件生成 导出数据库字典
作为一个程序员肯定是不愿意写文档的!!! 尤其最麻烦的数据库字典文档 所以偷懒写了一个PHP程序来进行数据库字典导出 记录一下 以免以后忘记 //使用的是Laravel框架 可以转换成原生导出$ta ...
- python面向对象-多继承区别
#!/usr/local/bin/python3 # -*- coding:utf-8 -*- ''' 构造方法继承策略: 在python2中,经典类是按照深度优先继承构造方法的:新式类是按照广度优先 ...
- 初识python 函数(定义,传参,返回值)
python基础(二): 菜鸟教程基础知识讲解的非常全面,内容选择我认为的重点输出一遍 函数: 定义一个函数: 你可以定义一个由自己想要功能的函数,以下是简单的规则: def fun(arg): pa ...