Yii2 之 UrlManager 实践 (一)
1. enablePrettyUrl
yii2默认不支持类似 http://<domain>/site/error 的url格式,需要在config.php中启用 enablePrettyUrl 属性
[
//others 'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
],
], ];
2. 配置suffix 实现伪静态 *.html
需要在 config.php中配置 urlManager 即可
[
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'suffix' => '.html',
],
],
];
3. 同时支持 http://<domain>/site/error.html 以及 http://<domain>/site/error 的url格式
* 没有找到仅仅配置config便可以实现的方式,这里重写UrlManager。只重写了一句代码,仅贴部分展示代码
namespace common\yiiext\web; use yii;
use yii\web\UrlManager as BaseUrlManager; class UrlManager extends BaseUrlManager
{ public function parseRequest($request)
{
if ($this->enablePrettyUrl) {
//other code ...
if ($suffix !== '' && $pathInfo !== '') {
$n = strlen($this->suffix);
if (substr_compare($pathInfo, $this->suffix, -$n, $n) === 0) {
$pathInfo = substr($pathInfo, 0, -$n);
if ($pathInfo === '') {
// suffix alone is not allowed
return false;
}
} else {
// 就这一句区别用父类
// suffix doesn't match
return [$pathInfo, []];
}
} //other code ..
}
}
* 然后再次配置config.php
[
'components' => [
'urlManager' => [
'class' => 'common\yiiext\web\UrlManager',
'enablePrettyUrl' => true,
'suffix' => '.html',
],
],
];
Yii2 之 UrlManager 实践 (一)的更多相关文章
- Yii2的urlManager URL美化
Yii1.*与Yii2中配置路由规则rules是几乎是一样的,但还是有细微的差别. 在Yii1.*中开启path路由规则直接使用 'urlFormat' => 'path', 但在Yii2中已经 ...
- yii2的urlManager配置
网址伪静态是一个非常常用的网站需求,Yii2可以非常简单地进行配置. 首先,在配置文件config/main.php的'components' 段中,加入如下设置:'urlManager'=>a ...
- Yii2.0 UrlManager
服务器软件的配置与1.0一致即可.. 在组件中进行如下配置: 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' = ...
- yii2 增加新的目录结构
搭建新的目录结构详细点击这里 搭建Restful API 点击这里 1.开发环境操作系统 Windows Server 2012 R2 DatacenterPHP架构 Ap ...
- Yii2中把路由地址中的%2F改为/
第一步:找到/vendor/yiisoft/yii2/web/UrlManager.php 第二步:搜索$url = "$baseUrl?{$this->routeParam}=&qu ...
- Yii2学习笔记---内附GridView配置总结
1./vendor/yiisoft/yii2/web/UrlManager.php 方法createUrl 修改url参数转码2.config/web.php 配置文件Yii::$app(应用主体)的 ...
- Yii2 composer更新后报错: Calling unknown method: yii\web\UrlManager::addRules()
网上搜了好多答案,基本上都是让你在composer.json里面添加这样一段话: "extra": { "asset-installer-paths": { & ...
- YII2安装中遇到的错误解决Calling unknown method: yii\web\UrlManager::addRules()
安装好YII2 后出现 例如以下图错误提示: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenF0c3g=/font/5a6L5L2T/fontsize/ ...
- YII2 随笔 视图最佳实践
yii\base\Controller::render(): 渲染一个 视图名 并使用一个 布局 返回到渲染结果. yii\base\Controller::renderPartial(): 渲染一个 ...
随机推荐
- javascript之闭包,递归,深拷贝
闭包 理解:a函数执行后return出b函数且b函数可以访问a函数的数据 好处:子函数存储在复函数内部,子函数执行完不会被自动销毁 坏处:占用内存比较大 ex: function bibao(){ v ...
- Linux中进程控制块PCB-------task_struct结构体结构
Linux中task_struct用来控制管理进程,结构如下: struct task_struct { //说明了该进程是否可以执行,还是可中断等信息 volatile long state; // ...
- 移植最新版libmemcached到VC++的艰苦历程和经验总结(上)
零.前言: 该篇博客的Title原计划是“在VC++中调用libmemcached的设计技巧”,可结果却事与原违,原因很简单,移植失败了.尽管结果如此,然而这3天的付出却是非常值得的,原因也很简单,收 ...
- AJAX 方式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- HDOJ-2054
A == B ? Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- c++拷贝函数详解(转)
一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如 int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变 ...
- 多叉树结构:JSON数据解析(一)
多叉树结构:JSON数据解析(一) 最近做一个实时数据搜索引擎的项目中,在项目架构的偏顶层需要写一个JSON数据解析的模块,由于目前JSON解析没有现成统一开源框架可以利用,目前只是手工利用com.a ...
- Identity Server 4 原理和实战(完结)_汇总贴
视频地址:https://www.bilibili.com/video/av42364337 语雀地址:https://www.yuque.com/yuejiangliu/dotnet/solenov ...
- E20181030-hm
conquer vt. 征服; 克服; 攻克; 打败(敌人); vi. 得胜,胜利; recur vi. 复发; 重现; 再发生; 回想; recurrence n. 复回,重现; 反复,隐现; ...
- CodeForces 644B【模拟】
题意: 查询数 和 最大的队列容量+1: 按时间顺序 ti代表,第i个出线的时间: di代表,第i个需要处理的时间: 对于第i个输出他所需要的时间完成,或者拒绝进入输出-1: 思路: 真是MDZZ了, ...