系统默认的规范是根据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. java ThreadPoolExecutor 异常捕获

    一,创建一个线程池 其中: public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) 饱和策略执行时的具体逻辑. p ...

  2. python 进程与线程 精要

    程序与进程 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程. 程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本:进程是程序的一次 ...

  3. Codeigniter设置时区

    Codeigniter 3.x,在application/config/config.php 末尾加上 date_default_timezone_set("Asia/Shanghai&qu ...

  4. 廖雪峰Java13网络编程-1Socket编程-2TCP编程

    1. Socket 在开发网络应用程序的时候,会遇到Socket这个概念. Socket是一个抽象概念,一个应用程序通过一个Socket来建立一个远程连接,而Socket内部通过TCP/IP协议把数据 ...

  5. JAVA C 数据类型对应

    { Java—C和操作系统数据类型的对应表 Java Type C Type Native Representation boolean int 32-bit integer (customizabl ...

  6. 阿里巴巴AI夺肝结节诊断两项世界冠军,至今无人超越

    在澳门用人工智能预测流感趋势后,阿里巴巴还在继续探索如何用科技保障人类健康,这一次是更准确地测量肝结节. 12月28日消息,在全球LiTS(Liver Tumor Segmentation Chall ...

  7. thinkphp 域名部署

    ThinkPHP支持模块(甚至可以包含控制器)的完整域名.子域名和IP部署功能,让你的模块变得更加灵活,模块绑定到域名或者IP后,URL地址中的模块名称就可以省略了,所以还可以起到简化URL的作用. ...

  8. thinkphp 目录安全文件

    为了避免某些服务器开启了目录浏览权限后可以直接在浏览器输入URL地址查看目录,系统默认开启了目录安全文件机制,会在自动生成目录的时候生成空白的index.html文件,当然安全文件的名称可以设置,例如 ...

  9. NX二次开发-UFUN编辑添加哪些图层UF_LAYER_edit_category_layer

    1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_layer.h> 5 6 7 UF_initialize(); 8 9 //创 ...

  10. GTK+/GNOME编程(一)

    1.开发环境:安装GTK+/GNOME库 #apt-get install gtk+-3.0                   (安装GTK+库文件) #apt-get install gnome- ...