系统默认的规范是根据URL里面的模块名、控制器名来定位到具体的控制器类的,从而执行控制器类的操作方法。

以URL访问 http://serverName/index.php/Home/Index/index 为例,其实访问的控制器类文件是:

  1. Application/Home/Controller/IndexController.class.php

如果是Windows环境,无论大小写如何都能定位到IndexController.class.php文件,所以下面的访问都是有效的:

  1. http://serverName/index.php/Home/Index/index
  2. http://serverName/index.php/Home/index/index
  3. http://serverName/index.php/home/index/index

如果在Linux环境下面,一旦大小写不一致,就会发生URL里面使用小写模块名不能找到模块类的情况。例如在Linux环境下面,我们访问 http://serverName/index.php/home/index/index 其实请求的控制器文件是

  1. Application/home/Controller/indexController.class.php

因为,我们定义的控制器类是IndexController而不是indexController(参考ThinkPHP的命名规范),由于Linux的文件特性,其实是不存在indexController控制器文件的,就会出现Index控制器不存在的错误,这样的问题会造成用户体验的下降。

但是系统本身提供了一个不区分URL大小写的解决方案,可以通过配置简单实现。

只要在项目配置中,增加:

  1. 'URL_CASE_INSENSITIVE' =>true

配置好后,即使是在Linux环境下面,也可以实现URL访问不再区分大小写了。

  1. http://serverName/index.php/Home/Index/index
  2. // 将等效于
  3. http://serverName/index.php/home/index/index

这里需要注意一个地方,一旦开启了不区分URL大小写后,如果我们要访问类似UserTypeController的控制器,那么正确的URL访问应该是:

  1. // 正确的访问地址
  2. http://serverName/index.php/home/user_type/index
  3. // 错误的访问地址(linux环境下)
  4. http://serverName/index.php/home/usertype/index

利用系统提供的U方法可以为你自动生成相关的URL地址。

如果设置

  1. 'URL_CASE_INSENSITIVE' =>false

的话,URL就又变成: http://serverName/index.php/Home/UserType/add

大理石平台检定规程

注意:URL不区分大小写并不会改变系统的命名规范,并且只有按照系统的命名规范后才能正确的实现URL不区分大小写。

 

thinkphp url大小写的更多相关文章

  1. THINKPHP URL模块大小写导致404问题

    最近我使用THINKPHP开发了一个项目在本地的集成开发环境wampserver做开发时并没有出现问题 上传到linux系统也没有出现问题,但当上传到windows平台上就出现了问题"文件4 ...

  2. thinkphp支持大小写url地址访问,不产生下划线

    from:http://www.111cn.net/phper/thinkPhp/57748.htm 一.在配置文件中开启了thinkphp的大小写识别功能,使链接大小写都可以正常访问: ‘URL_C ...

  3. ThinkPHP - URL - 伪静态 - 路由 - 重写

    URL: 一.URL规则 1.默认是区分大小写,可以修改(配置文件)为不区分大小写. 2. //修改URL大小写问题 'URL_CASE_INSENSITIVE' =>true, 如果模块名为 ...

  4. thinkphp url模式

    入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是 ...

  5. 关于URL大小写问题

    关于URL大小写的问题,不同平台的处理不同:Mac OS X 默认的文件系统(HFS case-insensitive) 是不分大小写的,Windows 上的 NTFS 也是,而 Linux 系统常用 ...

  6. thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)

    原文:thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成(十五) 本章节:详细介绍thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成 一.URL ...

  7. apache mod_speling.so 忽略URL大小写(自动纠错)

    apache mod_speling.so 忽略URL大小写(自动纠错) 打开配置文件  httpd.conf 加入 LoadModule speling_module modules/mod_spe ...

  8. ThinkPHP URL 路由简介

    简单的说,URL 路由就是允许你在一定规则下定制你需要的 URL 样子,以达到美化 URL ,提高用户体验,也有益于搜索引擎收录的目的. 例子 原本的 URL 为: http://www.5idev. ...

  9. thinkphp 3.2.1 URL 大小写问题 下面有具体说明

    问题假设方法为/Admin/User/addUser,关闭调试后,再访问时都是全部变成了小写:/admin/user/adduser1.我的APP_DEBUG是关闭的2.程序在win正常,放到linu ...

随机推荐

  1. 二.Python基础语法和数据类型

    Python第二节 基础语法和数据类型 Python编码 python3默认情况下源码文件以UTF-8编码, 字符串均为unicode字符串.同时也可以通过# -*- coding: cp-1252 ...

  2. 微信小程序 初阶

    公司最近安排要学习一下微信小程序的开发,大体看了看,幸亏还有点javascript的底子,学起来不至于太难,其它的语法什么的真需要好好适应适应....头大 从头开始看微信小程序开发的文档,目前来说没有 ...

  3. *** stack smashing detected ***: ./server terminated

    该类错误是修改了返回指针,一般是由于 1. 数组越界赋值.(数组没有边界检查)int a[8]; a[8],a[9],a[-1]..都能正常编译,连接,运行时可能出错. 2.使用 strcpy等不安全 ...

  4. 文本聚合函数(wm_concat, listagg, group_concat, string_agg)

    实现目标   1.聚合文本   2.聚合文本(去重)   3.聚合文本(去重),按照指定字段排序   4.聚合文本(去重),按照指定字段排序,替换默认逗号分隔符 MySQL: group_concat ...

  5. 日文NLP分词系统

    mecab(http://mecab.sourceforge.net/)是奈良先端科技大学开发的日文分词系统,基于CRF的分词原理,有c++实现,提供python.perl.ruby等接口 日文NLP ...

  6. Foxmail公司邮箱配置

    1.打开Foxmail点击新建输入账户密码,点击创建: 2.勾选IMAP服务器的ssl,修改SMTP服务器端口为587 点击应用,账号创建完成.可以拉取和发送邮件了:

  7. Android android studio常用的一些快捷键以及常用权限

    android studio的常用快捷键:一.打印log:1.输入logt回车:  自动生成TAG的全局变量:private static final String TAG = "MainA ...

  8. thinlphp配置加载

    在ThinkPHP中,一般来说应用的配置文件是自动加载的,加载的顺序是: 惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置-> ...

  9. JDK 安装步骤

    1.JAVA_HOME  =  JDK安装路径 2.  Path  =  %JAVA_HOME%\bin; 3.  CLASSPATH   =  .;%JAVA_HOME%\lib\dt.jar;%J ...

  10. LeetCode 817. Linked List Components (链表组件)

    题目标签:Linked List 题目给了我们一组 linked list, 和一组 G, 让我们找到 G 在 linked list 里有多少组相连的部分. 把G 存入 hashset,遍历 lin ...