Yii 2.0 路由管理美化URL

WEB开发中,关于URL我们总喜欢以简洁、统一的方式来管理,谁愿意看到冗长而无章的URL呢。

Yii2 提供了两个配置项可以美化URL,配置一下urlManager组件。代码如下:

[ 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, ], ], ];

启用enablePrettyUrl参数,你可以把查询字符串格式的 URL 转换成目录格式的URL(/index.php/news/view?id=100)。

禁用showScriptName参数将去除 URL 的 index.php 部分。

配置完成是不够的,我们需要配置WEB服务器对应用重定向。Yii2中web目录下的index.php是整个应用的入口脚本,禁用了showScriptName参数,那么意味着URL中不带有index.php,而我们需要访问应用时没有index.php仍然处理入口脚本,就需要对应用进行重定向,如果是Apache可以通过配置.htaccess文件来达到目的。代码如下:

RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUESTFILENAME} !-f RewriteCond %{REQUESTFILENAME} !-d # otherwise forward it to index.php RewriteRule . index.php

comments powered by Disqus