Yii2-url路由配置
没做任何处理的情况下,url地址如下
http://www.yii2-basic.com/index.php?r=site/about
去掉index.php 和 开启url美化
/web/目录下添加.htaccess文件
RewriteEngine on
# 如果是一个目录或者文件,就访问目录或文件
RewriteCond %{REQUEST_FILENAME} !-d
# 如果文件存在,就直接访问文件,不进行下面的RewriteRule
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php
配置文件
'urlManager' => [
'enablePrettyUrl' => true, //这个表示开启url美化
'showScriptName' => false, //这个字段表示不显示文件类型的名称,如.php或者.html
// 'suffix' => '.html' //这个字段表示后缀
],
UrlManager 路由规则
用法示例
$config = [
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'suffix' => null,
'rules' => [
'index' => 'site/index',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
],
],
],
];
常用参数说明
/**
* @var boolean 是否启用 URL 美化(路径友好化).
*/
public $enablePrettyUrl = false;
/**
* @var boolean 是否启用严格的解析.
* 如果启用严格解析, 则传入的请求 URL 必须至少与 $rules 中的一个匹配才被视为有效的请求. 否则, 请求的路径信息部分将被视为请求的路由.
* 该属性仅在 $enablePrettyUrl 为`true`时使用.
*/
public $enableStrictParsing = false;
/**
* @var \yii\web\UrlNormalizer|array|string|false
*/
public $normalizer = false;
/**
* @var string 路由的 GET 参数名称.
* 该属性仅在 $enablePrettyUrl 为`false`时使用.
*/
public $routeParam = 'r';
/**
* @var array $enablePrettyUrl 为`true`时创建和解析 URL 的规则.
* 该属性仅在 $enablePrettyUrl 为`true`时使用.
*/
public $rules = [];
/**
* @var boolean 是否在创建的 URL 中显示入口脚本名称.
* 该属性仅在 $enablePrettyUrl 为`true`时使用.
*/
public $showScriptName = true;
/**
* @var string 当 $enablePrettyUrl 为`true`时使用的 URL 后缀. eg: '.html'.
* 该属性仅在 $enablePrettyUrl 为`true`时使用.
*/
public $suffix = null;
$rules 参数详解
'rules' => [
// 匹配首页, 生成`html://yii2.com/index.html`
'index' => 'site/index',
/** 匹配通用带`?id=15`的url
* eg:`http://yii2.com/index.php?r=article%2Fview&id=104`,
* 生成: `http://yii2.com/article/view/104.html`
*/
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
/** 匹配通用的url
* eg:`http://yii2.com/index.php?r=article/index`,
* 生成: `http://yii2.com/article/index.html`
*/
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
],
标签:index,false,url,enablePrettyUrl,Yii2,true,public,路由
From: https://www.cnblogs.com/hu308830232/p/18140073