• Yii 框架 URL路径简化


     Yii 框架的訪问地址若不简化会让人认为非常繁琐。未简化的地址一般格式例如以下:

    http://localhost:80/test/index.php?r=xxx/xxx/xxx

    若是带有參数会更复杂:

    http://localhost:80/test/index.php?r=xxx/xxx/xxx&param1=XXX&param2=XXX


    那么我们通过什么方法把它美化下呢:

    1.在config目录下的main.php文件内。找到urlManager的配置,改动为例如以下:

                'urlManager'=>array(
    'urlFormat'=>'path',
    'rules'=>array(
    '<controller:w+>/<id:d+>'=>'<controller>/view',
    '<controller:w+>/<action:w+>/<id:d+>'=>'<controller>/<action>',
    '<controller:w+>/<action:w+>'=>'<controller>/<action>',
    '<controller:w+>/<action:w+>'=>'<controller>/<action>',
    ),
    ),


    如今再来訪问你的项目,你就会发现你的项目URL变成了:

    http://localhost:80/test/index.php/XXX/XXX

    2.这和不够,我们想继续简化,把index.php也去掉。

    继续改动main.php文件,

    'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName'=>false, //去除index.php
    //'urlSuffix'=>'.html', //加上.html  
    'rules'=>array(
    '<controller:w+>/<id:d+>'=>'<controller>/view',
    '<controller:w+>/<action:w+>/<id:d+>'=>'<controller>/<action>',
    '<controller:w+>/<action:w+>'=>'<controller>/<action>',
    '<controller:w+>/<action:w+>'=>'<controller>/<action>',
    ),
    ),

    这么改动之后。index.php不见了,可是会发现,部分URL出错了。

    怎么解决呢?

    3.加入 .htaccess文件,用于项目的訪问。内容例如以下:

    <IfModule mod_rewrite.c> 

    Options +FollowSymLinks
    IndexIgnore */*
    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 . index.php

    </IfModule>



    这样进入项目就会自己主动訪问index.php文件。url就不会错乱了。


    最后简化后的URL例如以下:

    http://localhost:80/test/XXX/XXX

  • 相关阅读:
    《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》
    YOLO(v1)
    循环赛日程表问题(分治法)
    平面最接近点对问题(分治法)
    SQLite学习心得
    如何找到Linux下常用命令的源码
    WiFi安全之WPA介绍
    七种不良的工作习惯
    Git 技巧小结
    微信智能硬件平台 简介
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6781078.html
Copyright © 2020-2023  润新知