thinkphp PATH_INFO支持
如果发生在本地测试正常,但是一旦部署到服务器环境后会发生只能访问首页的情况,很有可能是你的服务器或者空间不支持PATH_INFO所致。
系统内置提供了对PATH_INFO的兼容判断处理,但是不能确保在所有的环境下面都可以支持。如果你确认你的空间不支持PATH_INFO的URL方式的话,有下面几种方式可以处理:大理石平台检定规程
修改URL_PATHINFO_FETCH配置参数
新版内置了通过对ORIG_PATH_INFO,REDIRECT_PATH_INFO,REDIRECT_URL三个系统$_SERVER变量的判断处理来兼容读取$_SERVER['PATH_INFO'],如果你的主机环境有更特殊的设置,可以修改URL_PATHINFO_FETCH参数,改成你的环境配置对应的PATH_INFO的系统变量兼容获取名称,例如:
'URL_PATHINFO_FETCH' => 'ORIG_PATH_INFO,REDIRECT_URL,其他参数…'
如果你的环境没有任何对应的系统变量,那么可以封装一个获取方法,例如:
function get_path_info(){// 根据你的环境兼容获取PATH_INFO 具体代码略return $path; // 直接返回获取到的PATH_INFO信息}
然后我们修改下URL_PATHINFO_FETCH参数的配置值,改为:
'URL_PATHINFO_FETCH' => ':get_path_info'PATH_INFO
配置后,系统会自动读取get_path_info方法来获取$_SERVER['PATH_INFO']的值。
配置你的WEB服务器重写规则模拟PATH_INFO实现
如果你有服务器或者空间的配置权限,可以考虑通过配置URL重写规则来模拟实现。 具体可以参考后面URL重写中的内容。
采用兼容URL模式运行
这是最坏的方法,配置你的URL模式为3(表示兼容URL模式) 然后在需要生成URL的地方采用U方法动态生成即可。
thinkphp PATH_INFO支持的更多相关文章
- [转]Nginx+ThinkPHP不支持PathInfo的解决办法
FROM : http://www.4wei.cn/archives/1001174 应集团要求,公司的服务器全收到集团机房统一管理了,失去了服务器的管理配置权限. 杯具就此开始. 首先要解决文件大小 ...
- ThinkPHP可以支持直接使用字符串作为查询条件
ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用数组或者对象来作为查询条件,因为会更加安全. 大理石平台哪家好 一.使用字符串作为查询条件 这是最传统的方式,但是安全性不高, ...
- 让thinkphp 5 支持pathinfo 的 nginx ,去掉index.php
在TP5.0中查阅tp5官方文档,注意:5.0取消了URL模式的概念,并且普通模式的URL访问不再支持.phthinfo 是什么? PHP中的全局变量$_SERVER['PATH_INFO']是一个很 ...
- centOS7.4 thinkPHP nginx 支持pathinfo和rewrite
server { listen 80; server_name www.demo.com mayifanx.com; root /data/www/demo; index index.php inde ...
- thinkphp 闭包支持
闭包定义 我们可以使用闭包的方式定义一些特殊需求的路由,而不需要执行控制器的操作方法了,例如: 'URL_ROUTE_RULES'=>array( 'test' => function() ...
- thinkphp cookie支持
系统内置了一个cookie函数用于支持和简化Cookie的相关操作,该函数可以完成Cookie的设置.获取.删除操作. Cookie设置 cookie('name','value'); //设置coo ...
- thinkphp session支持
系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成,该函数可以完成Session的设置.获取.删除和管理操作. session初始化设置 如果session ...
- thinkphp 设置 支持模块多组
正常的访问地址是:localhost/项目名/index.php/Admin/Index/index 模块分组之后呢:localhost/项目名/index.php/Admin/System/Inde ...
- 如何让ThinkPHP支持模糊搜索
最近ytkah在做一个ThinkPHP的项目时发现了一个问题,搜索的功能只能检索出以*为开头的内容,不能检索出中间的词.例如:搜索包含6775的产品,搜索结果为空,而搜索000-6775 就有两个结果 ...
随机推荐
- rabbitmq AmqpClient 使用Topic 交换机同一个channel 同时多个队列 ,多个交换机,C++代码示例
// 消息发送 bool PublishExchangeTopicMulti(const std::string &strUri) { AmqpClient::Channel::ptr_t c ...
- rabbitmq AmqpClient 使用Fanout 交换机投递与接收消息,C++代码示例
fanout交换器重点内容非常简单.它只会将接收到的所有消息广播发送到它所知道的所有队列. 投递消息到交换机: #include "SimpleAmqpClient/SimpleAmqpCl ...
- ubtuntu下虚拟环境搭建【python】
为什么要搭建虚拟环境? 在开发过程中, 当需要使用python的某些工具包/框架时需要联网安装 比如联网安装Flask框架flask-0.10.1版本 sudo pip install flask== ...
- redux 基础
antd 的使用 1.安装npm install antd --save 2.引入到项目中 import 'antd/dist/antd.css'; // or 'antd/dist/antd.les ...
- hbuilder 配置app为沉浸式状态栏
- Linux新建环境变量快速切换到文件夹(export)
如果有一个文件夹目录很深/home/user/aaa/bbb/ccc/ddd/eee/fff/ggg,但是经常要跳转到这个文件夹.一个简单的办法就是给这个文件夹建立一个类似$PATH那样的环境变量,如 ...
- 关于C#的随机数
一直都知道random随机数可能出现相同的情况,但是一直没具体看为什么,网上一看又是一大堆例子给你出来,一点也不清晰,今天看msdn记录一下,msdn是讲的真的清楚. 实例化随机数生成器 通过向Ran ...
- webpack 添加eslint代码审查
1). 添加包 npm install eslint --save-dev npm install eslint-loader --save-dev npm install eslint-plugin ...
- SVN——将VS项目提交至SVN时,怎样忽略bin和obj目录中的文件
方法一: 通过设置SVN的Global ignore pattern值. 在设置了全局排除obj bin文件夹之后,需commit提交该项目,以使svn服务器应用该排除忽略 方法二: 具体实现 在解决 ...
- (转)ubuntu 下安装mysql5.5.30的过程以及遇到的问题
转:http://blog.chinaunix.net/uid-27103408-id-3280584.html 由于实验需要安装mysql,当然我们可以通过sudo apt-get install ...