yii2的urlManager配置
网址伪静态是一个非常常用的网站需求,Yii2可以非常简单地进行配置。
首先,在配置文件config/main.php的'components' 段中,加入如下设置:
'urlManager'=>array(
'enablePrettyUrl' => true, //对url进行美化
'showScriptName' => false,//隐藏index.php
'suffix' => '.html',//后缀
'enableStrictParsing'=>FALSE,//不要求网址严格匹配,则不需要输入rules
'rules' => []//网址匹配规则
),
然后,启用服务器的rewrite规则,比如apache服务器里,在网站根目录web文件夹里新建.htaccess文件,输入如下内容:
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1
注意这个文件仅对apache有效,并且apache必须启用rewrite模块。
这样,网址就自动优化了。
urlManager有以下可用参数:
[table id=1 /]
YII2的rules配置相对其它框架已经算简单了,但真要熟练应用也需要多多练手,或是啃一下yii/web/UrlRule类库的。一般来说,我们用到以下这几条就足够了:
'rules' => [
// 为路由指定一个别名简化网址
'reg' => 'user/register',
// 加id参数,这里用到了一点点正则,\d+在正则中表示至少一位的纯数字
'article/<id:\d+>' => 'article/view',
//标准的控制器/方法显示
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
//加id参数
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
// controller和action进行严格限制
'<controller:(post|comment)>/<id:\d+>/<action:(create|update|delete)>'
=> '<controller>/<action>',
// 包含了 HTTP 方法限定,用于restful风格的Web Server
'DELETE <controller:\w+>/<id:\d+>' => '<controller>/delete',
// 配置Web Server ,接收 *.cn09.com 域名的请求
'http://<user:\w+>.cn09.com/<lang:\w+>/profile' => 'user/profile',
]
根据以上规则,如果有什么特殊需求,应该多少也能猜到。如果需要完全理解路由规则,可以阅读一下yii/web/UrlRule源码,如果有特殊需求,也可以根据源码新建一个自己规则类来进行处理。
原文链接:http://www.cn09.com/archives/415
yii2的urlManager配置的更多相关文章
- Yii2的urlManager URL美化
Yii1.*与Yii2中配置路由规则rules是几乎是一样的,但还是有细微的差别. 在Yii1.*中开启path路由规则直接使用 'urlFormat' => 'path', 但在Yii2中已经 ...
- Yii2 的快速配置 api 服务 yii2-fast-api
yii2-fast-api yii2-fast-api是一个Yii2框架的扩展,用于配置完善Yii2,以实现api的快速开发. 此扩展默认的场景是APP的后端接口开发,因此偏向于实用主义,并未完全采用 ...
- YII2开启路由配置后,新加的模块无法访问
最近使用YII2,自定义创建了一个自定义模块users,位置为app\modules\users. 'modules' => [ 'users' => [ 'class' => 'a ...
- Yii2 之 UrlManager 实践 (一)
1. enablePrettyUrl yii2默认不支持类似 http://<domain>/site/error 的url格式,需要在config.php中启用 enablePrett ...
- Yii2.0 UrlManager
服务器软件的配置与1.0一致即可.. 在组件中进行如下配置: 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' = ...
- Centos6.5中 一键安装LNMP 安装Yii2.0 手工配置
1.一键安装LNMP cd /usr wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz tar zxf lnmp1.-full.tar.gz ...
- yii2发送邮件(配置QQ版本)
1:首先在配置文件main-local.php components=>[]里面配置 'mailer' => [ 'class' => 'yii\swift ...
- Yii2 mongoDb的配置及使用
yii2 的配置都是在启动时加载的,所以mongo的配置也同样在component里面配置. 具体实现(无用户和密码): [ 'mongo1' => [ 'class' => '\yii\ ...
- yii2 modules模块配置指南
在Yii2 中模块是可以无限级嵌套的,也就是说,模块可以包含另一个包含模块的模块,我们称前者为父模块,后者为子模块, 子模块必须在父模块的yiibaseModule::modules属性中申明,例如: ...
随机推荐
- mac下卸载MySQL
所有跟mysql相关进程都停止掉, 然后终端输入: cd ~/ sudo rm /usr/local/mysqlsudo rm -rf /usr/local/var/mysqlsudo rm -rf ...
- Leetcode Perfect Square
这道题首先想到的算法是DP.每个perfect square number对应的解都是1.先生成一个n+1长的DP list.对于每个i,可以用dp[i] = min(dp[j] + dp[i-j], ...
- 【BZOJ-4548&3658】小奇的糖果&Jabberwocky 双向链表 + 树状数组
4548: 小奇的糖果 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 103 Solved: 47[Submit][Status][Discuss] ...
- dotnet反编译工具大全
反编译不是为了破解软件,而是在开发时更好的读懂程序干了什么,比如MVC的源码,如果使用1和4的VS插件能更好的进行断点跟踪. 常用,效率最高: 1.[.NET Reflector]首选,能比较好的反编 ...
- hdu 3089 约瑟夫环
原来并不知道约瑟夫环还可以递推直接解orz 约瑟夫问题的递推公式: 设f[n]表示一共n个人,数到k出局,这样最后的winner (n个人从0开始标号,即0--n-1) f[n]=(f[n-1]+k) ...
- 文件内容统计——Linux wc命令
有了该命令,就可以得到当前目录下所有符合条件的文件总数,如下: find -type f | wc -l 这个命令的功能也很好记,因为它功能很有限: wc -c filename:显示一个文件的字节数 ...
- delete表1条件是另一个表中的数据,多表连接删除(转)
DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 from t1 where 条件 3. ...
- Python基本数据类型之set
一.定义 set是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), ...
- IPsec 学习笔记
工作中需要,参考网上的资料对IPSecVPN进行学习,并通过博客记录下一些知识点作为学习记录和后续复习的材料. Transport Layer (TLS) 其中主要参考了以下文档: http://ww ...
- Change MYSQL data directory
For example, change mysql data directory from /var/lib/mysql to /var/data/mysql Step1: Copy the /var ...