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

来源:互联网 发布:系统端口设置在哪里 编辑:程序博客网 时间:2024/06/05 02:53

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 directlyRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# Otherwise forward it to index.phpRewriteRule . 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请求将显示一个错误。





原创粉丝点击