使用yiihelpersUrl生成。URL提供的方法大都是静态方法,不需要实例化。
1、base方法
Url::base(); 生成当前网络的基础Url地址。默认为相对路径
var_dump(Url::base("http")); // 返回http://www.yii2.com 参数为协议:httphttpstp
2、canonical方法: 返回友好转码格式
如:访问:http://www.yii2.com/index.php?r=day2/url
返回: string(42) "http://www.yii2.com/index.php?r=day2%2Furl"
3、to()方法
var_dump(Url::to(["students/add"])); // 通过传入参数 生成网址
访问结果:string(27) "/index.php?r=students%2Fadd"
var_dump(Url::to(["students/edit","id"=>1,"name"=>"zhangsan"]));
string(47) "/index.php?r=students%2Fedit&id=1&name=zhangsan"
注意:第二个参数:true 如果加上的话会显示全路径,否则只显示相对路径
<img src="">
// /images/tes.jpg
<img src="">
// http://www.yii2.com/images/tes.jpg
URL优化方案
需求: 将http://www.yii2.com?index.php?r=site/index 优化成:http://www.yii2.com/site/index.html
在Yii2中配置
"urlManager" => [
"class"=>"yiiwebUrlManager" , // 指定实现类
"enablePrettyUrl" => true,
"showScriptName" => false,
//"suffix"=>".html", // 伪静态后缀
"rules" => [
// 自定义路由规则
"zhangsan"=>"students/add"
],
],
然后配置文件
.htaccess文件
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]