ThinkPHP - URL

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/:year\d/:month\d/:date\d‘=>‘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/:id\d‘=>‘Index/index‘,
                    ‘my/:name‘=>‘Index/index‘,
                    )
                2.可以使用$作为完全匹配的路由规则
                        ‘URL_ROUTE_RULES‘=>array(
                            ‘my/:id\d$‘=>‘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生成

  参考手册
时间: 2024-08-06 07:50:49

ThinkPHP - URL的相关文章

thinkphp url 项目分组

http://127.0.0.1/itemshop/index.php/Admin/Public/login/id/2 Admin 应用 Public 模块 login 方法 id 传值 http://127.0.0.1/webshop/admin.php?s=Admin&m=Category&a=index S 应用 m 模块 a 方法 thinkphp url 项目分组,码迷,mamicode.com

ThinkPHP URL 路由功能详解与实例

本节内容导读 本节内容主要介绍 ThinkPHP 路由功能与 U方法的使用,分为下面几个部分: ThinkPHP URL 路由功能详解:见本页下面文字 ThinkPHP 正则路由与实例 ThinkPHP U方法:使用U方法自动生成URL超链接 ThinkPHP 3.0 版本的路由功能较 2.x 版本有较大的变更,如果您的版本是 2.x,请参阅下面的文档: ThinkPHP 2.0 URL 路由(2.0版本适用) ThinkPHP 泛路由使用详解(2.0版本适用) ThinkPHP 2.1 路由规

thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)

原文:thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成(十五) 本章节:详细介绍thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成 一.URL规则 1.默认是区分大小写的 2.如果我们不想区分大小写可以改配置文件 'URL_CASE_INSENSITIVE'=>true,//url不区分大小写 *模块命名太长的情况: A.如果模块名为 UserGroupAction,复杂模块(一般是IndexAction) 那么url找模块就必要要写成

ThinkPHP URL重写

ThinkPHP 是国内一款流行的PHP框架,采用单一入口,那么其原始的 URL 便不是那么友好.但 ThinkPHP提供了各种机制来定制需要的 URL 格式,配合 Apache .htaccess 文件,更是可以定制出人性化的更利于 SEO 的URL 地址来. .htaccess文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置.我们可以利用 .htaccess 文件的Rewrite 规则来隐藏掉 ThinkPHP URL 中的 index.php 文件(即入口文件),这

ThinkPHP URL 重定向

想要去掉index.php, 因为所有地址都带着这个显得太长了. 步骤如下: 1.修改apache的配置文件httpd.conf 打开putty,执行如下命令 vim /etc/httpd/conf/httpd.conf i  //进入编辑模式 /mod_rewrite.so //执行查找命令,将加载模块前的#去掉 /AllowOverride  //执行查找命令,AllowOverride None 将None改为 Al esc :wq //保存退出 vim .htaccess //进入ind

thinkPHP URL访问

ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作,下面是一个标准的URL访问格式: http://domainName/index.php/模块/控制器/操作 其中index.php就称之为应用的入口文件(注意入口文件可以被隐藏,后面会提到). 提示: 模块在ThinkPHP中的概念其实就是应用目录下面的子目录,而官方的规范是目录名小写,因此模块全部采用小写命名,无论URL是否开启大小写转换,模块名都会强制小写

thinkphp url模式

入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是3.2版本的标准URL格式. 可以通过设置模块绑定或者域名部署等方式简化URL地址中的模块及控制器名称. URL大小写 ThinkPHP框架的URL是区分大小写(主要是针对模块.控制器和操作名,不包括应用参数)的,这一点非常关键,因为ThinkPHP的命名规范是采用驼峰法(首字母大写)的规则,而UR

thinkphp url生成

为了配合所使用的URL模式,我们需要能够动态的根据当前的URL设置生成对应的URL地址,为此,ThinkPHP内置提供了U方法,用于URL的动态生成,可以确保项目在移植过程中不受环境的影响. 定义规则 U方法的定义规则如下(方括号内参数根据实际应用决定): U('地址表达式',['参数'],['伪静态后缀'],['显示域名']) 地址表达式 地址表达式的格式定义如下: [模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2... 如果不定义模块的话 就表示当前模块名称,下面是一些简单的例

ThinkPHP - URL生成(U函数)

效果: 代码: //U('[分组/模块/操作]?参数' [,'参数','伪静态后缀','是否跳转','显示域名']) echo U('Index/index', array(), '.html', 0, true); 注意: 如果要不显示 index.php 入口文件,则要开启apache rewrite模式.并将 ThinkPHP的 ‘URL_MODEL’ => 2   .