SEO的URL格式是非常重要的。人们不注意url(一些浏览器甚至不显示它们),但是有些搜索引擎让URL和页面文本之间对应。

我们已经使用了这种类型的URL  index.php?r=site/index或index.php?r=site/about,其中r表示要遵循的参数路径。现在,我们来看看如何在site/about上改变这些格式,这样更容易让搜索引擎读懂也更有用。

为了使用优雅的url,我们需要配置Yii2来处理它们,这样就可以完成了几分钟。

在Linux环境中,以“.”开头的文件名, 表示这个文件是隐藏的。

.htaccess 文件的内容和yii1 是相同的:

RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . web/index.php

如果你的app root(网址访问的目录) 目录是  /var/www/vhosts/yiiapp/basic ,我们将 .htaccess 放在  /var/www/vhosts/yiiapp/basic 目录下面。

web服务器的第一行开启RewriteEngine;
然后,在第二和第三行,脚本是检查请求是否有不存在的文件或文件夹;
最后是修改请求重定向到web/index.php。
有了这些修改,所有不存在的文件或文件夹的请求都将被重写web/index.php。

如果我们可以访问这种级别的Apache配置,我们还可以在Apache配置中配置重写规则,而不是在 .htaccess 中。

如果 .htaccess配置配置完成后,检查(apache中)AllowOverride是否设置为所有的如下:

<Directory /var/www/path/to/folder>AllowOverride All
</Directory>

上面的是AllowOverride All 而不是 AllowOverride None

现在要做的最后一件事是配置Yii2,用来处理一个优雅的URL

让我们打开config / web.php并将这些内容添加到组件属性中:

'urlManager' => ['enablePrettyUrl' => true,
],

添加enablePrettyUrl属性,以上我们已经配置了urlManager来启用该属性漂亮的URL,切换了漂亮的URL格式。

之前的URL  index.php?r=site/index 变成了 /index.php/site/index

index.php?r=site/about 也变成了 /index.php/site/about

使用enablePrettyUrl属性,我们还可以用index.php做前缀。我们可以选择是否保留它;但是,要限制URL的长度,建议删除它。

我们可以用以下配置删除它

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

现在我们在浏览器中敲  http://hostname/basic/web/site/index 去访问Yii2应用的欢迎页面 , 然后检查检查其他的链接是否是优雅的urls

最后,还有urlManager组件的另一个属性,用于启用URL解析,只有基于给定的URL规则用enableStrictParsing声明。

如果这个属性是true,urlManager中定义的规则将被执行,如果没有匹配的URL请求将显示一个错误。

Yii2 Using pretty URLs (Yii2 中使用漂亮的urls) from ----- Yii2 By Example相关推荐

  1. 用php yii2设计网站,php,yii2_Yii2中做中英文网站,php,yii2 - phpStudy

    Yii2中做中英文网站 网站要做成一个中英文的,数据也要是中英文的,要怎么搞? 下面是我的一些想法: 建个模块,网站默认是中文,英文就放到英文的那个模块里,是英文的时候就调用英文的数据? 中文一套模板 ...

  2. swift视图容器_如何使用IBDesignable在Swift中创建漂亮的,可重复使用的渐变视图...

    swift视图容器 by Lee Dowthwaite 通过李道思韦特 如何使用IBDesignable在Swift中创建漂亮的,可重复使用的渐变视图 (How to create a beautif ...

  3. wordpress模板_如何在WordPress中添加漂亮的电子邮件模板

    wordpress模板 Do you want to change the appearance of emails sent by your WordPress site? By default, ...

  4. 如何在Word中排出漂亮的代码

    引言 学数学和计算机,当然还是用LaTeX排版技术文章更方便.但有时候还是迫不得已需要用Word写作,另外Word其实也有Word的好处,比如细节上的修改要比LaTeX方便. 从Matlab高亮代码复 ...

  5. 实际树莓派拿到手后感觉比想象中的漂亮,要结实,要沉,说实话还挺喜欢的

    实际树莓派拿到手后感觉比想象中的漂亮,要结实,要沉,说实话还挺喜欢的,有科技感,让人有捣鼓的冲动,还是想好好玩玩的.虽然它之前给我的印象应该是比较低级的,拿到手看后觉得不是这样的.

  6. Yii2与Yii1的模块中Layout使用区别

    在YII1中,某个模块的控制器要使用指定的Layout时,代码如下: class AdminController extends Controller  {      public $layout = ...

  7. yii2通过url访问类中的方法_每日学点---nginx变量使用方法详解(3)

    也有一些内建变量是支持改写的,其中一个例子是 $args. 这个变量在读取时返回当前请求的 URL 参数串(即请求 URL 中问号后面的部分,如果有的话 ),而在赋值时可以直接修改参数串.我们来看一个 ...

  8. yii2通过url访问类中的方法_行为型设计模式 访问者模式

    author zong email zongzhe1996@163.com 介绍 在访问者模式中,通过使用一个访问者类,可以改变元素类(被访问者)的执行算法.元素类的执行算法可以随着访问者的改变而改变 ...

  9. php根据时间搜索的控件,yii2 crud生成的搜索中 自定义按 时间 搜索

    第一步 用gii生成crud 注意填充Search Model Class这一项 可以放在单独的文件夹 例如app\models\search\PostSearch 第二步 再生成的views里面的i ...

最新文章

  1. sulime text 3
  2. ICCV2021|首届城市规模点云语义理解挑战赛启动了
  3. java笔记 -- java运算
  4. Java-Java I/O流解读之基于字节的I / O和字节流
  5. 运行iDT算法代码及后续特征编码
  6. python进程监控及恢复
  7. NodeJS中resolve添加地址无效
  8. C#中实现js中的eval函数功能
  9. mysql安装mac 压缩包_MySQL8.0安装详解(图文版)
  10. Spring扩展之BeanFactoryPostProcessor接口
  11. 风控教父谈模型风险管理(中文版)
  12. 用java代码编写出喜字_喜字是怎么写的
  13. sis最新ip地址2020入口一_【新版教材】2020最新人教版高中历史教材必修一电子课本...
  14. imagemagick使用_使用ImageMagick裁剪和调整图像大小
  15. 【课程设计】Java Web 学生成绩管理系统
  16. [ABC200F]Minflip Summation
  17. 开车,网吧,魔兽争霸,几天独特的生活体验
  18. 数制转换 1207 1216
  19. 除了labview你还知道哪些工业控制领域的软件?
  20. 老年人θ-γ跨频率耦合与工作记忆表现之间的纵向关系

热门文章

  1. 如何从0开始在鸿蒙OS中制作一个APP!
  2. 远程控制软件如何实现两台电脑连接
  3. 微信小程序手动添加收货地址省市区联动
  4. UC伯克利马毅老师新书:高维数据分析的低维建模
  5. 富士施乐248b粉盒清零_打印机DocuPrintM228B如何清零
  6. 同步异步与阻塞非阻塞的区别 (不定时更新)
  7. pyDes 库 DES 与 3DES 加解密
  8. python画龙猫_Python:制作动态字符图
  9. PEO-b-PTMPM的嵌段共聚物复合囊泡/具有pH响应性的纳米颗粒/卤化银纳米粒子/聚合物纳米
  10. 浙江大学 计算机学院 交互设计,浙江大学交互设计考研经历分享(原来跨考这么受欢迎)...