京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

php实现简朴路由实现伪静态

2024-11-4 08:33| 发布者: 284cc| 查看: 151| 评论: 0

摘要: 目录伪静态作用具体实现一点代码后续思索伪静态作用 加强搜刮引擎的友好性:通过改变动态的网页的URL,使之看起来像静态网页,伪静态技术有助于提高网站在搜刮引擎中的表现,使网站内容更易被搜刮引擎抓取和索引。
目录

伪静态作用

加强搜刮引擎的友好性:通过改变动态的网页的URL,使之看起来像静态网页,伪静态技术有助于提高网站在搜刮引擎中的表现,使网站内容更易被搜刮引擎抓取和索引。

提升用户信任度和体验:伪静态的URL后缀方式与静态网页相似,这有助于提升用户对网站的信任度。同时,伪静态技术也能改善用户对网站的团体体验,因为静态URL通常看起来更加整洁和专业。

缓解服务器负担:伪静态技术通过减少服务器响应哀求的次数,可以有效减轻服务器的负担,特别是在高并发访问的情况下。

提高关键词排名:在某些搜刮引擎中,伪静态技术可以通过提高关键词的相干性来提升网站的排名。比方,谷歌会以特殊方式展示与搜刮关键词高度相干的网站,从而提高这些网站的点击率。

具体实现

将?后面的参数转化为不带?的url地址

  • 将参数值放到地址上
  • 将参数名放到路由上
  • 只管将url后缀变为.html

参数识别

  • 通过服务器软件url重写同一入口
  • 通过同一路由处置惩罚函数将地址及路由参数变为普通带?的地址
  • 通过同一路由处置惩罚函数将参数添加进体系变量
  • 通过同一路由处置惩罚函数确定要执行的文件
  • require要执行的文件
  • 配合同一入口加定名空间简直完美

缓存

  • 为同一路由处置惩罚函数得到的普通带?的地址添加id
  • require要执行的文件用ob处置惩罚得到结果及文件类型写入缓存文件
  • 通过id获取缓存文件,没有缓存则ob require

一点代码

路由处置惩罚 //只针对get哀求 string类型参数

路由界说

[code]<?php define('route',[ [ '/detail/{$id}.html', '/detail.php' ], [ '/detail/{$id}/{$key}.html', '/detail.php' ], ]); [/code]

路由处置惩罚 //将参数添加进$_GET

[code]<?php namespace ppt\core; class Route { public static function addRouteParam($s) { $url = $s; $params = []; $route_params = []; $route_param_keys = []; $route_param_values = []; foreach (route as $item){ $route_tmp = preg_replace('/\{\$[\w]+\}/','[\w]+',$item[0]); $route_tmp = str_replace(['/','.'],['\/','\.'],$route_tmp); if(preg_match('/^'.$route_tmp.'(\?[\s\S]+)?$/i',$s)){ preg_match_all('/\{\$[\w]+\}/',$item[0],$route_param_keys); if(!empty($route_param_keys)){ $route_param_keys = str_replace(['{','$','}'],'',$route_param_keys[0]); preg_match_all('/[\w]+/',$s,$route_param_values); if(empty($route_param_values)){ break; } if(strpos($s,'?')!==false){ if(!empty(parse_url($s)['query'])){ parse_str(parse_url($s, PHP_URL_QUERY), $params); } } $route_param_values = $route_param_values[0]; $file = $item[1]; array_unshift($route_param_keys,'file'); for($i=1;$i<count($route_param_keys);$i++){ $route_params[$route_param_keys[$i]] = $route_param_values[$i]; } $params = array_merge($params,$route_params); $url = $file.'?'.http_build_query($params); } break; } } return $url; } } [/code]

参数提取及调用执行文件

[code]public static function run($s) { $_ppt_file = app.'/code'.parse_url($s)['path']; if(preg_match('/\/$/',$_ppt_file)) { $_ppt_file.='index.php'; } if(strpos($s,'?')!==false){ if(!empty(parse_url($s)['query'])){ parse_str(parse_url($s, PHP_URL_QUERY), $_params); foreach ($_params as $_key=>$_item){ $_GET[$_key] = $_item; } } } if(!is_file($_ppt_file)) http_code_404(); require $_ppt_file; } [/code]

后续思索

云云这般php的作用变为天生及控制静态文件

最良好的伪静态就是静态,故怎样用php实现没有php?

到此这篇关于php实现简朴路由实现伪静态的文章就介绍到这了,更多相干php伪静态内容请搜刮脚本之家从前的文章或继承浏览下面的相干文章希望各人以后多多支持脚本之家!


来源:https://www.jb51.net/program/319796s63.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-1 21:17 , Processed in 0.043691 second(s), 18 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部