资讯专栏INFORMATION COLUMN

Yii2框架URL美化教程

jk_v1 / 3007人阅读

摘要:注意事项服务器中配置的虚拟域名必须直接指向入口文件所在目录,否则在省略的情况下,服务器无法正确访问到项目。

Yii2.0默认的访问形式为:

http://www.xxx.com/index.php?r=post/index&id=100

一般我们都会考虑将其美化一下,变成如下的形式:

http://www.xxx.com/post/100.html

接下来就是美化的步骤

一、配置http服务器 1、Apache

在入口文件(index.php)所在的目录下新建一个文本文件,接着另存为.htaccess,用编辑器打开此文件加入:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

保存即可

2、Nginx

在nginx配置文件(我本地是/conf/vhosts/test.conf文件)中加入:

location/{
    try_files $uri $uri/ /index.php?$query_string;
}

整个server配置类似:

server {
        listen80;
        server_name  test.yii.com;

        root "/Projects/yii/web";
        location / {
            index  index.html index.htm index.php;
            try_files $uri $uri/ /index.php?$query_string;
        }

        error_page /50x.html;
        location = /50x.html {
            root   html;
        }

        location~ .php(.*)$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^((?U).+.php)(/?.*)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
    }
二、配置yii

打开config目录下的web.php,在$config = [ "components"=>[] ]中加入以下内容:

"urlManager" => [
    //开启url美化
    "enablePrettyUrl" => true,
    //隐藏index.php
    "showScriptName" => false,
    //禁用严格匹配模式
    "enableStrictParsing" => false,
    //url后缀名称
    "suffix"=>".html",
    //url规则
    "rules" => [
        //post后面跟上数字的url,则将数字赋给id参数,然后传递给 post/view,实际上访问的是 post/view?id=XXX
        "post/"=>"post/view"
    ]
],

rules数组中配置具体的路由规则

三、重启http服务器

至此,配置完毕。

注意事项

http服务器中配置的虚拟域名必须直接指向入口文件所在目录,否则在url省略index.php的情况下,http服务器无法正确访问到项目。

举个例子:

配置test.yii.com虚拟域名指向了/Projects/yii/web目录,而你的项目入口文件其实是在/Projects/yii/web/test目录

浏览器访问项目的url是:

http://test.yii.com/test/index.php?r=post/view&id=100

这时你把url换成

http://test.yii.com/test/post/100.html

是行不通的

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26061.html

相关文章

  • Yii2.0 RESTful API 基础配置教程

    这篇说下yii2.0开发 API 吧,使用 RESTful API模式 安装Yii2.0 通过 Composer 安装 这是安装Yii2.0的首选方法。如果你还没有安装 Composer,你可以按照这里的说明进行安装。 安装完 Composer,运行下面的命令来安装 Composer Asset 插件: php composer.phar global require fxp/composer-a...

    fyber 评论0 收藏0
  • Yii2.0 RESTful API 基础配置教程[转载]

    摘要:最近在做功能,找了好久的资料,才找到这类的教程,感谢该作者,以下内容根据我的项目实际情况做了一定的修改。 最近在做Yii2.0 RESTful API功能,找了好久的资料,才找到这类的教程,感谢该作者,以下内容根据我的项目实际情况做了一定的修改。 安装yii2.0 安装 Composer 后,您可以通过在 Web 可访问的文件夹下运行以下命令来 安装Yii应用程序模板: compose...

    xorpay 评论0 收藏0
  • Yii2.0 RESTful API 之版本控制

    摘要:之版本控制之前我写过两篇关于如何搭建,以及认证等处理,但是没有涉及到版本管理,今天就来谈谈版本管理如何实现。如果你还没有安装,你可以按照这里的说明进行安装。 Yii2.0 RESTful API 之版本控制 之前我写过两篇关于 Yii2.0 RESTful API 如何搭建,以及 认证 等处理,但是没有涉及到版本管理,今天就来谈谈版本管理如何实现。 索性就从头开始一步一步搭建吧,但是关...

    _ang 评论0 收藏0
  • Swagger PHP使用指南

    摘要:,已经好了,试着访问根目录下,比如试试,出现界面就成功了没从先就用命令看下的路由最上面条就是刚刚添加的路由。 先说什么是Swagger, Swagger的使用目的是方便优美的呈现出接口API的各种定义, 生成API文档, 包括参数, 路径之类. 有时后端改了API的参数或者其他设置, 前端直接看这个Swagger UI就可以, 方便项目管理和团队协作. 官网: http://swagg...

    cnio 评论0 收藏0
  • Yii2系列教程二:MVC Forms 和 Layouts

    摘要:而且很明显地,我们可以看到,一旦输入框在失去焦点的时候,如果里面没有输入任何内容,每个输入框就会有相应的错误提示,用户体验很不错。 原文来自: https://jellybool.com/post/programming-with-yii2-exploring-mvc-forms-a... 上一篇文章我们简单地实现了Yii2框架安装和Hello World,而在这一篇文章当中...

    ThreeWords 评论0 收藏0

发表评论

0条评论

jk_v1

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<