destoon伪静态地址空值优化

   

目前的处理方式:index.php?catid=0&areaid=0&kw=墙体广告 的伪静态处理结果为

index-htm-kw-墙体广告-catid-0-areaid-0.html

但是这种格式不是特别好,因为如果值为0或者值为空的时候, 表示值不存在,如果是多重条件的组合,会生成一长串空值地址:

现在增加一个方法

把类似这样的长网址sell/search-htm-list-0-kw-墙体广告-catid-0-areaid-0.html  简化成 search-htm-kw-墙体广告.html

rewrite是原方法,在方法体中增加一个getUrlKeyValue($url)来处理

 

转自:http://www.kaotop.com/it/218870.html

 

在/include/global.func.php 有个rewirte函数来处理

 

1
2
3
4
5
6
7
8
9
function rewrite($url, $encode = 0) {
    if(!RE_WRITE) return $url;
    if(RE_WRITE == 1 && strpos($url, 'search.php') !== false) return $url;
    if(strpos($url, '.php?') === false || strpos($url, '=') === false) return $url;
    $url= getUrlKeyValue($url);//这里增加一个过滤方法解决值为空或0的问题
    $url = str_replace(array('+', '-'), array('%20', '%20'), $url);
    $url = str_replace(array('.php?', '&', '='), array('-htm-', '-', '-'), $url).'.html';
    return $url;
}

  在本文件最后加上一个函数

1
2
3
4
5
6
7
8
function getUrlKeyValue($url){
    $result = '';
    $mr = preg_match_all('/(\?|&)(.+?)=([^&?]*)/i', $url, $matchs);
    if ($mr !== false) {
        for ($i = 0; $i < $mr; $i++) { if($matchs[3][$i]) { $result.=$matchs[2][$i].'='.$matchs[3][$i].'&'; } } } $rootStr = substr($url,0,strpos($url, '.php?')+5);
    $result = $rootStr.rtrim($result,'&');
    return $result;
} 
posted @   圆柱模板  阅读(101)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-03-17 深度学习Keras框架笔记之激活函数详解
2018-03-17 深度学习Keras框架笔记之Activation类使用
2018-03-17 深度学习Keras框架笔记之AutoEncoder类
2018-03-17 深度学习Keras框架笔记之TimeDistributedDense类
2018-03-17 深度学习Keras框架笔记之Dense类(标准的一维全连接层)
2018-03-17 深度学习Keras框架笔记之核心层基类
2018-03-17 大数据开发keras框架环境配置小结
点击右上角即可分享
微信分享提示