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

from:http://www.111cn.net/phper/thinkPhp/57748.htm

一、在配置文件中开启了thinkphp的大小写识别功能,使链接大小写都可以正常访问:

‘URL_CASE_INSENSITIVE’ =>true

文件命名都是规范的,但是在模板中使用__URL__获取当前url路径时,却没有正确得到url。

手册中这样写:

这里需要注意一个地方,如果我们定义了一个UserTypeAction的模块类,那么URL的访问应该是:

http://serverName/index.php/user_type/list

而不是

http://serverName/index.php/usertype/list

在模板中使用__URL__得到的链接还是下面那个,并没有加上下划线。

二、解决办法是修改tp的源代码:

在tp的Lib文件夹的Core文件夹下的Dispatcher.class.php文件,找到181行,这里定义了__URL__的地址获取方式:

代码如下 复制代码
$moduleName    =   defined(‘MODULE_ALIAS‘)?MODULE_ALIAS:MODULE_NAME;
        if(define(www.111cn.net)d(‘GROUP_NAME‘)) {
            define(‘__URL__‘,!empty($domainModule)?__GROUP__.$depr : __GROUP__.$depr.( C(‘URL_CASE_INSENSITIVE‘) ? strtolower($moduleName) : $moduleName ) );
        }else{
            define(‘__URL__‘,!empty($domainModule)?__APP__.‘/‘ : __APP__.‘/‘.( C(‘URL_CASE_INSENSITIVE‘) ? strtolower($moduleName) : $moduleName) );
        }

把其中的C(‘URL_CASE_INSENSITIVE’) ? strtolower($moduleName) : $moduleName )改成:

代码如下 复制代码
C(‘URL_CASE_INSENSITIVE‘) ? parse_name($moduleName,0) : $moduleName

这样就OK了!

时间: 2024-10-08 16:37:27

thinkphp支持大小写url地址访问,不产生下划线的相关文章

ThinkPHP教程_PHP框架之ThinkPHP(二)【URL路径访问与模块控制器、URL四种模式、PATHINFO的两种模式、模板与控制器之间的关系】

一.URL路径访问与模块控制器 URL 模块(控制器) 动作(方法) 即以上三者之间的关系URL:http://127.0.0.1/projectName/index.php/模块/动作 1.ThinkPHP规定,两点 ·第一.所有的主入口文件默认访问index控制器(模块) ·第二.所有的控制器默认执行index方法(动作) 特别强调一下,以上两点是独立的!也就是说"所有的主入口文件默认访问index控制器,并执行默认执行index方法"是不准确的 那么,http://127.0.0

ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器

ThinkPHP的目录结构 回顾上一篇的安装目录: 目录对应关系 F:\\PHP├─index.php       入口文件├─README.md       README文件├─Application     应用目录├─Public          资源文件目录└─ThinkPHP        框架目录 thinkphp 的目录结构 ThinkPHP 的目录结构非常清晰和容易部署.大致的目录结构如下,以项目为基础进行部署. ┎━ThinkPHP 框架系统目录┃ ┝ ThinkPHP.ph

解决为什么内网不能用公网地址访问内网服务器

NAT地址池和服务器地址要与出口IP不同网段,NAT地址池可以和服务器地址在同一网段,也可在不同网段. 对于下文中推论的回答:我认为不会成环,ping NAT地址池的没用到的地址,得不到回应,就没有回去的数据包,怎么会成环呢..... 以下参考下面这个文章,附上本文留存,原文引用链接为: http://www.2cto.com/net/201202/119693.html NAT网络回流现象解释,内网使用服务器的外网IP登陆 hi大家好,今天我们来讨论一个很多人都找不到答案得问题:究竟为什么内网

检测URL地址是否有响应

今天突然出来了一个问题,URL地址调用导致程序卡死(原因是服务挂了,磁盘坏了) 然后想到了,再调用URL地址前先判断下地址是否有响应,这样不就可以解决问题了吗? C# 代码: /// <summary> /// 检测URL地址是否可以访问 /// </summary> /// <param name="Url">URL地址(以http://开头)</param> /// <returns>返回OK</returns>

JS获取上一访问页面URL地址document.referrer实践2

一.JS获取前一个访问页面的URL地址document.referrer 要获取前一个访问页面的URL地址前后端语言都可以,例如PHP的是$_SERVER['HTTP_REFERER'],JavaScript的就是document.referrer. 我们平常开发,虽然和URL打交道也算比较频繁,但是,似乎很少使用document.referrer.我起初以为是兼容性不好,后来测试发现ie7都支持,那就奇怪了,为何document.referrer用的不多呢? 我想了一下,可能有下面几个原因:

thinkPHP四种URL访问方式(二)

原文:thinkPHP四种URL访问方式(二) 四.url的4种访问方式 1.PATHINFO 模式 -- (重点) http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2 http://localhost/thinkphp/index.php/Index/index http://localhost/thinkphp/index.php/Index/add/name/leyangjun   ---传参(也支持通用的模式?name=leyangjun) 2.普通模式 htt

nginx 配置web 虚拟目录 并且codeIgniter,thinkphp 重新url 地址

nginx 配置虚拟目录并且url 重写 server { #侦听80端口 listen 8090; #定义使用www.xx.com访问 server_name 127.0.0.1; #设定本虚拟主机的访问日志 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /home/lxy/www/cs/; #定义服务器的默认网站根目录位置 #默认请求 location / { index inde

ThinkPHP 怎样让URL访问的时候省略 index.php

ThinkPHP 怎样让URL访问的时候省略 index.php Nginx 服务器配置 修改 nginx.conf 文件 location / { // …..省略部分代码 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } } 原来的访问URL: http://serverName/index.php/模块/控制器/操作/[参数名/参数值...] 设置后,我们可以采用下面的方式访问: http://serv

用java程序直接访问URL地址

/**       * 程序中访问http数据接口       */      public static String getURLContent(String urlStr) {                     /** 网络的url地址 */           URL url = null;                    /** http连接 */       HttpURLConnection httpConn = null;                   /**/