URL其实就是我们浏览器地址栏的地址,一般由三部分组成:

  1. 协议名称,一般就是http
  2. 域名,也就是主机名
  3. 资源路径

如链接: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大小写敏感导致页面访问失败的问题,可以有以下解决方案:

  1. 当访问链接有大小写错误时返回301错误码并提示重定向到正确的链接,可以通过mod_spelling模块实现。
  2. 使用mod_rewrite规则强制进行大写向小写转换

另外,如果get请求后面有参数的话,key和value都是大小写敏感的。

URL大小写敏感之谜的更多相关文章

  1. linux+apache url大小写敏感问题

    Linux对文件目录大小写敏感,URL大小写敏感会导致网页打不开,解决方法之一是启用Apache的mod_speling.so模块. 1.确认/usr/lib/httpd/modules目录下是否存在 ...

  2. 解决ubuntu中apache2的url大小写敏感问题。

    cd /etc/apache2/mods-enabled ln -s ../mods-available/speling.load speling.load ln -s ../mods-availab ...

  3. ThinkPHP第四天(U函数,URL类型参数配置,伪静态后缀名配置,数据传递与获取$_GET等)

    1.U('地址','参数','伪静态','是否跳转','是否显示域名'); 在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码. 在模 ...

  4. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

  5. TP框架 ---空控制器和空操作

    通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控 ...

  6. tp

    ThinkPHP php框架 真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分 ...

  7. ThinkPHP 常用配置项列表

    //数据库配置 DB_HOST 主机名 DB_USER 用户名 DB_PWD 密码 DB_NAME 数据库名 DB_PREFIX 表前缀 LOAD_EXT_FILE=>'function lis ...

  8. ThinkPHP模板的知识(比较全的知识)

    php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...

  9. Think PHP 基础

    ThinkPHP 一.什么框架: 一堆代码的集合,里边有变量.函数.类.常量,里边也有许多设计模式MVC.AR数据库.单例等等. 框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次. ...

随机推荐

  1. 【CodeForces 915 C】Permute Digits(思维+模拟)

    You are given two positive integer numbers a and b. Permute (change order) of the digits of a to con ...

  2. hdu_1788_Chinese remainder theorem again (lcm

    我知道部分同学最近在看中国剩余定理,就这个定理本身,还是比较简单的: 假设m1,m2,…,mk两两互素,则下面同余方程组: x≡a1(mod m1) x≡a2(mod m2) … x≡ak(mod m ...

  3. 思维导图 XMind 8 Update 8 Pro for Mac 中文破解版

    破解包下载地址 在官网下载8版本就可以了

  4. bean工具类

    package com.zq.utils; import java.lang.reflect.Method;import java.util.Arrays;import java.util.Colle ...

  5. vue $set修改对象

    在vue开发中,当生成vue实例后,再次给数据赋值时,有时候并不会自动更新到视图上去: eg:<!DOCTYPE html> <html> <head> <m ...

  6. PHP----composer安装和TP5验证码类

    妈的,想用TP5做个项目,用到登录验证码了,结果煞笔TP5不内置了,需要用Composer,用吧,来下载 1.安装Composer 1.1 更新 sudo apt-get update 1.2 安装w ...

  7. ubuntu配置机器学习环境(一) ubuntu安装

    第一部分:Ubuntu14.04安装 Step :安装Ubuntu Step 1.1:准备安装U盘 首先到官网下载Ubuntu的镜像,我使用的是Ubuntu 14.04.3的ISO. 然后使用Ultr ...

  8. urllib.request.urlretrieve()

    urllib模块提供的urlretrieve()函数.urlretrieve()方法直接将远程数据下载到本地. urlretrieve(url, filename=None, reporthook=N ...

  9. VS中的快捷键

    1.代码中追踪函数的详细代码:   F12

  10. python简单的数据清洗,数据筛选方法归类

    创建数组有两种方式,1.直接赋值 2.随机变量生成随机生成包括4种:np.arange(20),np.linspace(0,10,5),np.logspace(0,2,5),np.random.ran ...