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

简介: 原文: thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五) 本章节:详细介绍thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成 一、URL规则1、默认是区分大小写的 2、如果我们不...
原文: 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/:year\d/:month\d/:date\d'=>'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/: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重写
比如: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
}


目录
相关文章
|
10月前
|
移动开发 前端开发 JavaScript
前端vue2、vue3去掉url路由“ # ”号——nginx配置(一)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
674 0
|
3月前
|
PHP Apache
【ThinkPHP框架教程·Part-04】URL访问模式
本章节介绍 ThinkPHP6.0 的 URL 访问模式,解析其访问方法。ThinkPHP 框架通过 URL 实现多种操作,默认为单应用模式。
【ThinkPHP框架教程·Part-04】URL访问模式
|
7月前
|
Python
路由(URL routing)
【8月更文挑战第23天】
50 4
|
10月前
|
前端开发 JavaScript 应用服务中间件
前端vue2、vue3去掉url路由“ # ”号——nginx配置(二)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
468 0
|
7月前
|
API 开发者 Python
"FastAPI路由大揭秘!轻松玩转URL映射,让你的Web应用路由设计既RESTful又灵活多变,秒杀传统框架的秘籍在这里!"
【8月更文挑战第31天】在Web开发中,路由是连接用户请求与后端逻辑的关键。FastAPI作为现代Python Web框架的佼佼者,以其简洁的API设计和高性能,提供了高度灵活的路由系统。本文通过开发一个博客系统的案例,详细介绍了FastAPI中路由的实现方法,包括基础路由定义、参数类型验证及路由分组与嵌套等,展示了如何轻松构建RESTful风格的URL映射,提升应用的可维护性和扩展性。
210 2
|
7月前
|
开发者 Java UED
大文件传输不再头疼:揭秘Struts 2如何轻松应对文件上传与下载难题!
【8月更文挑战第31天】在Web应用开发中,文件上传与下载至关重要。Struts 2作为主流Java EE框架,凭借Commons FileUpload及文件上传拦截器简化了相关操作。本文探讨Struts 2在文件传输上的优势,通过具体配置与代码示例,展示如何设置最大文件大小、使用`fileUpload`拦截器以及实现文件上传与下载功能。对于大文件传输,Struts 2不仅能够轻松应对,还支持上传进度显示,有效提升了用户体验。总体而言,Struts 2为文件传输提供了高效便捷的解决方案,助力开发者构建稳定可靠的Web应用。然而,在处理大文件时需兼顾网络带宽与服务器性能,确保传输顺畅。
106 0
|
7月前
|
API UED 开发者
Vaadin路由魔法:导航之舟,带你穿越页面迷宫!驾驭神奇URL,解锁无限可能!
【8月更文挑战第31天】Vaadin是一款现代Java Web开发框架,其路由机制结合前后端路由,确保流畅的用户体验和高效服务器资源利用。通过`@Route`注解和`Router`类,开发者可以轻松定义和管理页面路径。例如,`@Route(&quot;home&quot;)`可指定视图路径,而参数化路由如`@Route(&quot;user/:userId&quot;)`则允许URL传参。此外,Vaadin还提供了丰富的导航API和自定义路由事件监听器,助力开发者构建结构清晰且体验优秀的Web应用。
103 0
|
10月前
|
开发框架 搜索推荐 中间件
中间件应用路由和URL重写
【5月更文挑战第2天】中间件应用路由和URL重写
78 3
中间件应用路由和URL重写
|
10月前
|
SQL 监控 安全
提高ThinkPHP对url的安全性
提高ThinkPHP对url的安全性
50 2
|
10月前
【超实用】Angular如何修改当前页面网页浏览器url后面?param1=xxx&param2=xxx参数(多用于通过浏览器地址参数保存用户当前操作状态的需求),实现监听url路由切换、状态变化。
【超实用】Angular如何修改当前页面网页浏览器url后面?param1=xxx&param2=xxx参数(多用于通过浏览器地址参数保存用户当前操作状态的需求),实现监听url路由切换、状态变化。

热门文章

最新文章