我这里是以basic版为基础讲解的。但高级版应该也是一样的。基本版配置文件config/web.php。

yii默认的控制器是site,这里要改成我们习惯的index,只需要在$config这个数组里面加上

<?php$config=[......'defaultRoute'=>'index',......]

你也可以改成其它你想要的默认控制器。

url美化

$config=[......'defaultRoute'=>'index','components'=>['urlManager'=>['enablePrettyUrl'=>true,'showScriptName'=>false,'enableStrictParsing'=>false,'rules'=>[],'suffix'=>'.html',],]......]

enablePrettyUrl属性:是必需的,因为它可以切换漂亮的URL格式。

showScriptName属性:是否在构造的URL中显示条目脚本名称。 默认为true。 此属性仅在$ enablePrettyUrl为true时使用。为true的时候创建url,index.php/user/100。为false的时候创建url,/user/100

enableStrictParsing:此属性确定是否启用严格请求解析。 如果启用了严格的解析,则传入的请求的URL必须与至少一个规则相匹配才能被视为有效的请求,否则将抛出一个yii \ web \ NotFoundHttpException。 如果禁用了严格的解析,当没有任何规则与请求的URL匹配时,URL的路径信息部分将被视为请求的路由。

rules:此属性包含指定如何解析和创建URL的规则列表。 您应该使用的主要属性是为了创建格式满足特定应用程序要求的URL。

suffix:enablePrettyUrl为true时使用的URL后缀。 例如,可以使用“.html”,以便URL看起来像指向静态HTML页面。 此属性仅在$ enablePrettyUrl为true时使用。

常规的url美化的配置就这些了。在就是nginx是添加上rewrite

location/{try_files$uri$uri//index.php?$args;}

日志配置

$config=[......'defaultRoute'=>'index','components'=>['urlManager'=>['enablePrettyUrl'=>true,'showScriptName'=>false,'enableStrictParsing'=>false,'rules'=>[],'suffix'=>'.html',],'log'=>['traceLevel'=>YII_DEBUG?3:0,'targets'=>[['class'=>'yii\log\FileTarget','levels'=>['error','warning'],'logVars'=>['_GET','_POST'],'logFile'=>"@runtime/logs/".date("Y-m-d").".log"],],],]......]

yii保存日志有几种方式

yii\log\DbTarget:在数据库表里存储日志消息。

yii\log\EmailTarget:发送日志消息到预先指定的邮箱地址。

yii\log\FileTarget:保存日志消息到文件中.

yii\log\SyslogTarget:通过调用PHP函数syslog()将日志消息保存到系统日志里。

这里我只说说我自己最常用的保存日志消息到文件中。其它的以后有时间,在专一个博客来讲吧。

traceLevel:设置了yii\log\Dispatcher::traceLevel的层级,假如YII_DEBUG开启则是3,否则是0。 这意味着,假如YII_DEBUG开启,每个日志消息在日志消息被记录的时候, 将被追加最多3个调用堆栈层级;假如YII_DEBUG关闭, 那么将没有调用堆栈信息被包含。

class:说明选择哪种方式应用日志。我这里是用的文件保存。

levels:指定哪个消息的严重程度和分类目标应该处理。

logVars:默认包含$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION$_SERVER这些全局的上下文请求。我这里配置的是只记录get和post请求的上下文,你可以将logVars配置成一个空数组来完全禁止上下文信息包含,只在日志里记录levels定义的信息。

logFile:日志的路径及文件名。默认的是app.log。我这里配置成按每天的时间生成日志。(2017-09-01.log)

先写这么多吧。以后有时间在和大家分享