Thinkphp3.2访问Url时去掉模块

通常我们在访问tp目录的时候是:http://xxx/index.php/Home/Index/index,以/模块/控制器/操作的方式访问,但是这样的话对于Url的优化不好,所以我们通常都会隐藏掉Home(模块),以http://xxx/index.php/Index/index这种方式来访问。

在tp的官网文档里是说在配置文件里配置了这2个就可以达到了这个效果了,但是实际是还不行的。

所以在这里可以推荐2种方法来达到这种效果

1、在index.php文件加上以下代码

define(‘DEFAULT_MODULE‘,‘Home‘) //设置默认模块

2、修改Thinkphp/Libary/Think/Dispather.class.php文件

$_GET[$varModule] = preg_replace(‘/\.‘ . __EXT__ . ‘$/i‘, ‘‘,$paths[0]);
$_SERVER[‘PATH_INFO‘] = isset($paths[1])?$paths[1]:‘‘;

改成

$allowList = C(‘MODULE_ALLOW_LIST‘); // 允许的模块列表
$module = preg_replace(‘/\.‘ . __EXT__ . ‘$/i‘, ‘‘,$paths[0]);
if( empty($allowList) || (is_array($allowList) && in_array_case($module, $allowList))){
$_GET[$varModule] = $module;
$_SERVER[‘PATH_INFO‘] = isset($paths[1])?$paths[1]:‘‘;
}

操作后即可达到效果。

时间: 2025-01-16 07:11:31

Thinkphp3.2访问Url时去掉模块的相关文章

tomcat修改域名和访问域名时去掉项目名

打开tomcat安装目录,根据路径找到 server.xml   路径D:\apache-tomcat-7.0.70\conf\server.xml 打开后   找到这一段 <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> port="80" 在这里指定端口 然后找到

squid+域环境 出现 当尝试取回该 URL 时遇到下面的错误 访问被拒绝。

收藏(0)         故障问题: ERROR The requested URL could not be retrieved 当尝试取回该 URL 时遇到下面的错误:http://news.163.com/ 访问被拒绝. Accesscontrol configuration prevents your request from being allowed at this time. Please contact your service provider if you feel thi

url路径去掉两个opencms

采用刚刚的方法安装OpenCMS之后,站点url中会存在两个opencms,造成访问url路径过长,下面讲解一种去掉两个opencms的方法. 1.去掉第一个opencms 安装时采用ROOT安装,即把opencms.war改名为ROOT.war放到webapp下进行安装,这样第一个/opencms就去掉了,不用配置其他任何参数. 此时的安装路径:http://localhost:8080/ setup 2.去掉第二个opencms 使用urlrewrite模块实现,步骤如下: (1)下载url

使用浏览器的开发者工具与 DIG 命令行工具,来分析访问站点时的网络连接与 HTTP 请求和响应

前言 想必有些朋友和我一样,想要弄清楚当使用浏览器访问一个站点时,究竟向那些站点发起了 HTTP 请求:站点的 HTTP 响应:这些站点的域名是否和 shell 终端输出的 socket 套接字IP地址对应得上:这些站点使用的域名,IP地址,物理地址,域名拥有者和IP地址拥有者之间的联系:系统当前是否存在恶意或非法的网络连接...等等. 本博文就是要以随手取得的开源工具,并且用一种可实际操作的标准化流程,来达到上述种种分析任务的目标. 这套工具集与流程,以及思路,适用于你想分析的任何对象(这里指

SVN客户端访问URL失败--请求的名称有效,但是找不到请求的类型 (转载)

描述 给同事电脑装上SVN服务器,然后在本机连接SVN时总是报错"请求的名称有效,但是找不到请求的类型的数据".在网上找了一大堆解决方案都无果. 解决 最后发现原因竟是咱俩电脑不在一个工作组.他电脑选择的是公用网络,我是家庭网络,不在一工作组.后来统一设置成家庭网络就ok了... 参照贴文 http://blog.csdn.net/mengdonghui123456/article/details/47092309 在使用SVN客户端时遇到了个这样的问题:客户端访问服务端时输入对应的U

Basic认证方式访问url

同学们,今天我们来了解一下Basic认证.Basic认证在访问WebApi时需要验证账号密码,它是最基础的验证之一.通常我们裸奔一个服务的url,如果被别有用心的人拿到了,那么他就能无限调用接口操作数据库/获取数据,后果可以想象.同时认证可以有效保证数据安全.好了,废话不多说,咋们进入正题. 1.时间戳/密文传递验证 2.通过token验证 3.basic认证 -- 无论是哪种方式,都是为了保证url的安全性,这个可以根据密级的提高采用不同的方式,同时还有一些其他的身份认证方式,大家有兴趣可以去

php curl 代理ip访问url

网上很多代理ip来访问url,具体干什么我也不知道,写代码: $header //请求头 $cookie //存储cookie $arrip //ip地址的地址及端口 $params // public function dorequest($arrip = array(),$url,$header,$timeout = 20000,$method=',$cookie'){ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,

iOS 创建静态库文件时去掉其中的Symbols

在工程中创建静态库文件时,默认会将一些Symbols加到静态库文件中,这样做有两个缺点: 1.如果引用静态库文件的工程中发生了bug,就会直接跳转到静态库的源码. 2.静态库文件的大小会因此翻几番.本人最近做的这个静态库文件中,去掉symbols前大小为7.8MB左右,去掉以后大小为2.8MB. 要去掉Symbols,首先打开Build Settings并选中静态库的Target,然后设置下列选项: 如果有错误或遗漏,欢迎批评指正. iOS 创建静态库文件时去掉其中的Symbols,布布扣,bu

JAVA访问URL

JAVA访问URL: package Test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URI; import java.net.URISyntaxException; import java.