• ThinkPHP


    URL:
    一、URL规则
            1、默认是区分大小写,可以修改(配置文件)为不区分大小写。
            2、    //修改URL大小写问题
                'URL_CASE_INSENSITIVE' =>true,
                如果模块名为 UserGroupAction,因为过于复杂。
                那么url着模块就必须要写成:
                http://localhos/thinkphp/index.php/user_group/index  (user与group之间有下划线)
            3、如果 'URL_CASE_INSENSITIVE' =>false,
                那么url的模块可以直接写成:
                http://localhos/thinkphp/index.php/UserGroup/index
    二、URL伪静态
            1、默认的ThinkPHP已经为我们开启了伪静态,
                可以直接在地址栏输入:http://localhos/thinkphp/index.php/UserGroup/index.html
            2、可以限制伪静态的后缀:
                'URL_HTML_SUFFIX'=>'html|shtml|xml' // 多个用 | 分割
    三、URL路由
            1、要使用路由规则,那么URL模式要为 PATH_INFO模式
            2、在配置文件中,开启路由支持,并书写路由规范。
                - 规则表达式配置路由
                    'URL_ROUTER_ON'=>true,
                    'URL_ROUTE_RULES'=>array(
                        //静态地址路由,没有动态的变量。
                        //可以这样访问【 URL:http://localhost/thinkphp2/index.php/my 】
                        'my'=>'Index/index',
                        
                        
                        //动态地址路由
                        //加上 d代表类型只能是数字
                        'year/:yeard/:monthd/:dated'=>'Index/index',//动态和静态混合地址路由
                        // 加上$说明地址中只能是 my/1000后面不能有其他内容了
                        'my/:id$'=>'Index/index',
                        
                        
                        
                        //动态静态混合地址路由,有动态的变量,也有静态值,动态变量 [ :num ],可以以GET传参的方式,交给Index/index,模块中的方法。
                        //可以这样访问【 URL:http://localhost/thinkphp2/index.php/id/23 】
                        // 后台 $_GET['num'],即可获得id的值。(id是名称,num是id的值)
                        'id/:num'=>'Index/index',
                    ),
                    
                - 正则表达式配置路由
                    '/^year/(d{4})/(d{2})/(d{2})/'=>'Index/index?year=:1&month=:2&date=: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重写
            通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,
            通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持。
            
            下面是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://serverName/index.php/Blog/read/id/1
            就可以通过访问
            http://serverName/Blog/read/id/1
            简化了URL地址。
            
            
    五、URL生成
    
      参考手册

    URL路由:

    • www.***.com/c_23.html,进入列表页
    • www.***.com/34.html,进入内容页
        //URL路由
        'URL_ROUTER_ON' => true,
        'URL_ROUTE_RULES' => array(
            '/^c_(d+)$/' => 'Home/List/index?id=:1',//前面要加上Home项目名
            '/^(d+)$/'   => 'Home/Show/index?id=:1',
        ),
  • 相关阅读:
    物理机与虚拟机互通
    error while loading shared libraries: libevent-2.2.so.1: cannot open shared object file: No such file or directory
    DateTime.Now.ToFileTime
    洛谷-P2249 【深基13.例1】查找
    洛谷-P3817 小A的糖果
    洛谷-P3612 [USACO17JAN]Secret Cow Code S
    洛谷-P5019 铺设道路
    洛谷-P2437 蜜蜂路线
    洛谷-P1044 栈
    洛谷-P1255 数楼梯
  • 原文地址:https://www.cnblogs.com/KTblog/p/5181905.html
Copyright © 2020-2023  润新知