Yii2中的urlManager的相关配置说明

  •   
  • 4181
  • PHP
  • 4
  • super_dodo
  • 2015/11/09

在Yii2的使用中Yii2的urlManager可以让你的url看上去更简短整洁,利于你使用的同时也可以利于SEO方面。下面就是一些urlManager的配置信息以及案例示例。这些配置信息写在项目中的components部分。具体的代码如下,请各位自行揣测研究。


'components' => [
	'request' => [
		'cookieValidationKey' => 'XhHSYYu6ya8s_cgRmr1T_Kbag96C8mqRn',
		'enableCookieValidation' => true,
		'enableCsrfValidation' => true,
	],
	'cache' => [
		'class' => 'yii\caching\FileCache',
	],

	'urlManager' => [
		'enablePrettyUrl' => true,
	//  'urlSuffix'=>'.html',               	//页面的后缀 .do .aspx
		'showScriptName' => false,  //此部分需要.hattaccess 或者 vhosts配合
		'rules'=>[
			'<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<module>/<controller>',
			'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',

			'<controller:\w+>/<id:\d+>'=>'<controller>/view',                   //此处重要:把post/id/title映射为:post/view/id/title
			'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',  //此处重要:把post/id/title映射为:post/view/id/title
			'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
			
			'login'=>'member/site/login',		//login 对应到 member/site/login
			'logout'=>'member/site/logout',		//logout 对应到 member/site/logout
			'<action:(login|logout)>'=>'member/site/<action>',		//login和logout
			
			'info/<id:\d+>'=>'member/my/info',				//info/80 对应到 member/my/info/80
			'<id:\d+>'=>'member/my/info',					//80 对应到 member/my/info/80
			'<action:\w+>/<id:\d+>'=>'member/my/<action>',	//info/80 对应到 member/my/info/80

			'php/<id:\d+>'=>'post/php',                   //php/80 对应到 post/php/80
			'html/<id:\d+>'=>'post/html',                 //mysql/88 对应到 post/mysql/88

			"<action:\w+>/<id:\d+>" => "post/<action>",     // html/23 对应到 post/html/23
			"<controller:\w+>/<action:\w+>/<id:\d+>" => "<controller>/<action>",    // post/view?id=100 => post/view/100
		],
	],
	
	// .......

	'db' => require(__DIR__ . '/db.php'),
],
	

生成url的时候请使用yii\helpers\Url相关的组件

<?php 
use yii\helpers\Url;
?>

<a href="<?php echo Url::to(&#91;'/member/site/login'&#93;);?>" target="_blank">登陆</a>
<a href="<?php echo Url::to(&#91;'/member/site/logout'&#93;);?>" target="_blank">退出</a>
<a href="<?php echo Url::to(&#91;'/member/my/info','id'=>80]);?>" target="_blank">用户信息</a>

花有重开日,人无再少年,任何人都无法逃避自然规律,也许属于詹姆斯的时代真的要过去了,正所谓昨朝花胜今朝好,今朝花落成秋草。花前人是去年身,去年人比今年老。