开启伪静态

Nginx
主要检查配置文件是否有以下代码:

  1. location / {
  2. # Redirect everything that isn't a real file to index.php
  3. try_files $uri $uri/ /index.php?$args;
  4. }

Apache 以及完整的 Nginx 配置请查看文末给的参考链接。
PS:你如果使用我提供的方案搭建环境的话,这一步骤我已经帮你做了。

修改路由配置

Yii2 高级模板配置文件说明

  • backend 和 frontend 通用的配置文件建议写到 common\config 下面。
  • 而 config 文件里面的 main.php 和 main-local.php 配置文件的区别是,main.php 会被提交到 git 版本控制里面,而 main-local.php 不会,main-local.php 会合并 main.php 里面的配置。所以一些数据库配置和邮箱配置都会写到 main-local.php 中。
  • params.php 和 params-local.php 的用法和 main.php 和 main-local.php 一样,只不过 params 主要用来记录参数而 main 主要用来记录配置信息。
  • Yii2 高级模板有一个 php init 初始化操作,主要是执行一些文件的生成,和修改一些文件的权限。文件的生成其实就是把 environments 文件夹对应的文件拷贝到对应的位置,如果有需要你可以修改 environments 文件夹里面的文件代码。

优化路由
明白了 Yii2 的配置文件的使用,我们来讲讲如何来优化路由。
默认注册链接是 xxx.dev.com/index.php?r=site%2Fsignup 我们通过修改 config\main.php 文件代码:

'components' => [
// ....
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [],
],
],
  • enablePrettyUrl 指是否开启路由美化
  • showScriptName 指是否显示 index.php
  • rules 路由规则,可以不写

注册路由可以变成 xxx.dev.com/site/signup 了,舒服多了。Yii2 的路由其实非常的强大,我们可以通过配置 rules 参数来实现很多效果,下面我们通过一些实例来学习:
实例一:/xxx/yyy?id=1 优化为 /xxx/yyy/1

'rules' => [
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
],

实例二:/site/signup 优化为 /signup ; /site/login 优化为 /login

'rules' => [
'<alias:login|signup>' => 'site/<alias>',
],

实例三:指定 /column/index 为默认首页

'rules' => [
'/' => 'column/index',
],

实例四:/column/index 优化为 /columns

'rules' => [
'columns' => 'column/index',
],

实例五:/column/view?id=1 优化为 /column/1

'rules' => [
'column/<id:\d+>' => 'column/view',
],

实例六:搜索的时候 /column/index?category_id=1&name=forecho 优化为 /column/search-1-forecho

'rules' => [
'column/search-<category_id:\d+>-<name:\w+>' => 'column/index',
],

实例七:伪装成 html 静态文件

'components' => [
// ....
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'suffix' => '.html',
],
],

然后你就看到所有的链接都是 .html 结尾。
高级模板中如果对路由只有最基本的美化要求可以把 urlManager 配置写到 common\config\main.php 里,如果有特殊需求,那就分别在 backend 和 frontend 里面配置