zoukankan      html  css  js  c++  java
  • thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)

    本章节:具体介绍thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成



    一、URL规则
    1、默认是区分大写和小写的 
    2、假设我们不想区分大写和小写能够改配置文件
    'URL_CASE_INSENSITIVE'=>true,//url不区分大写和小写
    *模块命名太长的情况:
    A、假设模块名为 UserGroupAction,复杂模块(通常是IndexAction)
    那么url找模块就必要要写成
    http://localhost/thinkphp4/index.php/user_group/index
    B、假设'URL_CASE_INSENSITIVE'=>false(区分大写和小写的情况能够訪问)
    那么url也能够写为
    http://localhost/thinkphp4/index.php/UserGroup/index


    二、URL伪静态(tp默认支持伪静态)
    http://localhost/thinkphp4/index.php/UserGroup/index.xml
    *默认pdo、html、xml...都是支持的。假设要限制加个配置即可
    'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制伪静态的后缀


    三、URL路由
    1、启动路由
    要在配置文件里开启路由支持
    'URL_ROUTER_ON'   => true, //开启路由
    2、使用路由
    1.规则表达式配置路由
    'URL_ROUTER_ON'   => true, //开启路由
    'URL_ROUTE_RULES' => array( 
    'my'=>'Index/index',//静态地址路由 訪问:http://localhost/thinkphp/index.php/my
    ':id/:num'=>'Index/index',/*后面的数字值随便写,字母也行
      动态地址路由 訪问:http://localhost/thinkphp/index.php/10/200
              能够再模块控制器中用get方式传值  或 获取
               echo $_GET['id'];
               echo $_GET['num'];   
             */
    'my/:num'=>'Index/index', //动静混合地址路由  http://localhost/thinkphp/index.php/my/200  
    'year/:year/:month/:date'=>'Index/index',//动态和静态混合地址路由:                          http://localhost/thinkphp/index.php/year/2014/12/21
    'year/:yeard/:monthd/:dated'=>'Index/index',//动态和静态混合地址路由 --加上 d代表类型仅仅能是数字
    'my/:id$'=>'Index/index',// 加上$说明地址中仅仅能是 my/1000 后面不能有其它内容了
    );


    2.正則表達式配置路由
    //http://localhost/thinkphp/index.php/year/2014/12/21
    '/^year/(d{4})/(d{2})/(d{2})/'=>'Index/index?

    year=:1&month=:2&date=:3'


    3、注意事项:
    1.越复杂的路由越往前面放
    'URL_ROUTE_RULES'=>array(
    'my/:year/:month:/:day'=>'Index/day',  *复杂的路由放在前面,放后面就不会运行
    'my/:idd'=>'Index/index',
    'my/:name'=>'Index/index',
    )
    2.能够使用$作为全然匹配的路由规则(无论复杂否,都会匹配全部正则)
    'URL_ROUTE_RULES'=>array(
    'my/:idd$'=>'Index/index',
    'my/:name$'=>'Index/index',
    'my/:year/:month:/:day$'=>'Index/day',
    ),
    3.用正则匹配的方式
    'URL_ROUTE_RULES'=>array(
    '/^my/(d+)$/'=>'Index/index?id=:1',
    '/^my/(w+)$/'=>'Index/index?name=:1',
    '/^my/(d{4})/(d{2})/(d{2})$/'=>'Index/day?year=:1&month=:2&day=:3',
    ),


    四、URL重写
    比方:http://localhost/thinkphp/index.php/Index/index.html/t/my   ---- 不想让index.php出现
    以下是Apache的配置过程,能够參考下:
    1、httpd.conf配置文件里载入了mod_rewrite.so模块
    2、AllowOverride None 将None改为 All
    3、确保URL_MODEL设置为2 (该步骤省略)
    4、把以下的内容保存为.htaccess文件放到入口文件的同级文件夹下
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    </IfModule>
    重新启动Apache之后,原来的
    就能够通过訪问
    http://localhost/thinkphp/Index/index.html/t/my  --简化了URL地址,对SEO的支持度好点


    五、URL生成(手冊有具体介绍)
    public function url(){
    echo U('Index/add'); // 生成Index模块的add操作的URL地址
    ///thinkphp/index.php/index/add
    }


  • 相关阅读:
    基于mini2440的boa服务器移植
    主机+虚拟机ubuntu+mini2440开发板互相ping通
    poj3133 插头dp
    2015 北京网络赛 E Border Length hihoCoder 1231 树状数组 (2015-11-05 09:30)
    2015 北京网络赛 C Protecting Homeless Cats hihoCoder 1229 树状数组
    acm 2015北京网络赛 F Couple Trees 主席树+树链剖分
    hdu4777 树状数组
    hdu5517 二维树状数组
    Codeforces Round #327 (Div. 1) D. Top Secret Task
    2014-2015 ACM-ICPC, Asia Xian Regional Contest GThe Problem to Slow Down You
  • 原文地址:https://www.cnblogs.com/llguanli/p/6848622.html
Copyright © 2011-2022 走看看