• 【转】Yii的url美化管理


    转自:http://hudeyong926.iteye.com/blog/1297515

    test.com/nvku想生成test.com/nvku/

    'urlSuffix'=>'/',

    要更改URL格式,我们应该配置urlManager应用元件,以便createUrl可以自动切换到新格式和应用程序可以正确理解新的网址:

    'urlManager'=>array(
    	'urlFormat'=>'path',
    	'showScriptName'=>false,
    	'urlSuffix'=>'.html',
    	'rules'=>array(
    		'posts'=>'post/list',
    		'post/<id:\d+>'=>array('post/show','urlSuffix'=>'.html'),
    		'post/<id:\d+>/<mid:\w+>'=>array('post/view','urlSuffix'=>'.xml'),
    	),
    ),
     'posts'=>'post/list',
    echo $this->createAbsoluteUrl('post/list');

    1 输出http://localhost/yii_lab/index.php/post/view

    'post/<id:\d+>'=>array('post/show','urlSuffix'=>'.html'),
    echo $this->createAbsoluteUrl('post/show',array('id'=>998, 'name'=>'123'));

     2输出http://localhost/yii_lab/index.php/post/998.html?name=123

    'post/<id:\d+>/<mid:\w+>'=>array('post/view','urlSuffix'=>'.xml'),
     
    echo $this->createAbsoluteUrl('post/view',array('id'=>998, 'mid'=>'tody'));

     3,输出http://localhost/yii_lab/index.php/post/998/tody.xml

    'http://<user:\w+>.yiiblog.info/<_c:(look|seek)>'=>array('<_c>/host','urlSuffix'=>'.boylee'),
     
    echo $this->createAbsoluteUrl('look/host',array('user'=>'BoyLee', 'mid'=>'ny-001'));
    echo '';
    echo $this->createAbsoluteUrl('looks/host',array('user'=>'BoyLee', 'mid'=>'ny-001'));

     4.输出http://BoyLee.yiiblog.info/look.boylee?mid=ny-001

    http://localhost/yii_lab/index.php/looks/host/user/BoyLee/mid/ny-001

    1)controller/Update/id/23
    public function actionUpdate(){
    $id = Yii::app()->request->getQuery('id') ; 经过处理的$_GET['id']

    }

    //$id = Yii::app()->request->getPost('id'); 经过处理的$_POST['id']

    //$id = Yii::app()->request->getParam('id'); //CHttpRequest更多

    2)public function actionUpdate($id)  这种不支持多主键,会检查一下到底GET里面有没有id,没有id就直接不允许访问

    'sayhello/<name>' => 'post/hello',  name是PostController actionHello($name)的参数


    'post/<alias:[-a-z]+>' => 'post/view',   domain/post/e文小写 其中:前面的alias是PostController actionView($alias)的参数


    '(posts|archive)/<order:(DESC|ASC)>' => 'post/index',  domain/posts/DESC或domain/posts/ASC


    '(posts|archive)' => 'post/index',  domain/posts或domain/archive

    'tos' => array('website/page', 'defaultParams' => array('alias' =>'terms_of_service')),
    When the URL is /tos, pass terms_of_service as the alias parameter value.

    隐藏 index.php

    还有一点,我们可以做进一步清理我们的网址,即在URL中藏匿index.php 入口脚本。这就要求我们配置Web服务器,以及urlManager应用程序元件。

    1.add showScriptName=>false

    2.add project/.htaccess

    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

    3.开启rewrite

    简单的说,在main.php中简单设置urlManager,然后讲了3条规则,基本都覆盖到了。最后是隐藏index.php,请记住.htaccess位于index.php同级目录 ,而不是protected/目录。其他就简单了。

    更多参考 http://www.yiiframework.com/doc/guide/1.1/en/topics.url

  • 相关阅读:
    Spring MVC Ajax 嵌套表单数据的提交
    Spring MVC 过滤静态资源访问
    Spring MVC 页面跳转时传递参数
    IDEA Maven 三层架构 2、运行 springMVC
    IDEA Maven 三层架构 1、基本的Archetype 搭建
    EasyUI DataGrid 基于 Ajax 自定义取值(loadData)
    Spring MVC Ajax 复杂参数的批量传递
    Mybatis Sql片段的应用
    在 Tomcat 8 部署多端口项目
    自动升级的设计思路与实现
  • 原文地址:https://www.cnblogs.com/fzzl/p/2875335.html
Copyright © 2020-2023  润新知