PHPwind 伪静态简化URL长度为1.html,f2等的方法介绍

所属分类: CMS教程 / phpcms 阅读数: 1198
收藏 0 赞 0 分享

1。根目录下.htaccess(规则适用iis,其他nginx、apache还要稍做修改)
RewriteEngine on
RewriteRule f(\d+)_(.*)_(.*)$ /thread.php?fid=$1&page=$2&type=$3 [L]
RewriteRule f(\d+)_(.*)$ /thread.php?fid=$1&page=$2 [L]
RewriteRule f(\d+)$      /thread.php?fid=$1 [L]
RewriteRule (\d+)_(.*)_(.*)_(.*).html$ /read.php?tid=$1&page=$2&fpage=$3&uid=$4 [L]
RewriteRule (\d+)_(.*)_(.*).html$  /read.php?tid=$1&page=$2&fpage=$3 [L]
RewriteRule (\d+)_(.*).html$   /read.php?tid=$1&page=$2 [L]
RewriteRule (\d+).html   /read.php?tid=$1 [L]
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2 [L]
RewriteRule /simple/([a-z0-9\_]+)\.html$ /simple/index\.php\?$1 [L]
2、在require/common.php
找到
function urlRewrite($url) {
换成:
function urlRewrite($url) {
global $db_htmifopen, $db_dir, $db_ext;
if (!$db_htmifopen) return $url;
     if (!preg_match('/^(http|ftp|telnet|mms|rtsp)|admin.php|rss.php/i', $url)){
         $add = strpos($url, '#') !== false ? substr($url, strpos($url, '#')) : '';
         if(strpos($url, 'thread.php?') !== false){
             unset($rw);
             $tharr = explode('&', substr(str_replace($add, '', $url), 11));
             foreach($tharr as $key => $value){
                 $ru = explode('=', $value, 3);
                 if($ru['1']){
                     switch($ru['0']){
                     case 'fid':
                         $rw['fid'] = $ru['1'];
                         $rw['para'] < 1 && $rw['para'] = 1;
                         break;
                     case 'page':
                         $rw['page'] = $ru['1'];
                         $rw['para'] < 2 && $rw['para'] = 2;
                         break;
                     case 'type':
                         $rw['type'] = $ru['1'];
                         $rw['para'] < 4 && $rw['para'] = 4;
                         break;
                     default:
                         $rw['para'] = 8;
                         $urlfail = 1;
                         break;
                         }
                     }
                 }
                 switch($rw['para']){
                 case '1':
                     $url = "f" . $rw['fid'] ;
                     break;
                 case '2':
                     $url = "f" . $rw['fid'] . "_" . $rw['page'] ;
                     break;
                 case '4':
                     $url = "f" . $rw['fid'] . "_" . $rw['page'] . "_" . $rw['type'] ;
                     break;
                     }
         }elseif(strpos($url, 'read.php?') !== false){
             unset($rw);
             $rarr = explode('&', substr(str_replace($add, '', $url), 9));
             foreach($rarr as $key => $value){
                 $ru = explode('=', $value, 2);
                 if($ru['1']){
                     switch($ru['0']){
                     case 'tid':
                         $rw['tid'] = $ru['1'];
                         $rw['type'] < 1 && $rw['type'] = 1;
                         break;
                     case 'page':
                         $rw['page'] = $ru['1'];
                         $rw['type'] < 2 && $rw['type'] = 2;
                         break;
                     case 'fpage':
                         $rw['fpage'] = $ru['1'];
                         $rw['type'] < 3 && $rw['type'] = 3;
                         break;
                     default:
                         $rw['type'] = 4;
                         $urlfail = 1;
                         break;
                         }
                     }
                 }
             switch($rw['type']){
             case '1':
                 $url = $rw['tid'] . ".html";
                 break;
             case '2':
                 $url = $rw['tid'] . "_" . $rw['page'] . ".html";
                 break;
             case '3':
                 $url = $rw['tid'] . "_" . $rw['page'] . "_" . $rw['fpage'] . ".html";
                 break;
                 }
             }
         if($urlfail){
             $url = str_replace(
                array('.php?', '=', '&', $add),
                 array($db_dir, '-', '-', ''),
                 $url
                ) . $db_ext . $add;
             }
         }elseif(strpos($url, 'hack.php?') !== false){
             unset($rw);
             $rarr = explode('&', substr(str_replace($add, '', $url), 9));
             foreach($rarr as $key => $value){
                 $ru = explode('=', $value, 2);
                 if($ru['1']){
                     switch($ru['0']){
                     case 'H_name':
                         $rw['H_name_value'] = $ru['1'];
                         if(in_array($rw['H_name_value'],array('fenlei','mm'))){
                             $rw['type'] = 1;
                         }
                         break;
                     }
                 }
                 switch($rw['type']){
                 case '1':
                     $url = $rw['H_name_value'] . "/";
                     break;
             //case '2':
             //    $url = $rw['tid'] . "_" . $rw['page'] . ".html";
             //    break;
             //case '3':
             //    $url = $rw['tid'] . "_" . $rw['page'] . "_" . $rw['fpage'] . ".html";
             //    break;
                 }
             }
         }
     return "$url";
}

更多精彩内容其他人还在看

PHPCMS V9 定时发布文章的实现方法

今天和大家分享下 PHPCMS V9 文章定时发布的方法,定时发布文章可以做到预约发布、自动发布,方便我们在忙的时候更新文章,保证搜索引擎的收录
收藏 0 赞 0 分享

phpcms v9站内外搜索代码分享

站内外搜索对一个网站有很重要的意义,接下来为大家介绍下phpcms v9实现站内外搜索的代码,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

Phpcms v9 栏目列表选择性调用数据具体方法

在PC v9栏目列表中调用出了指定文章的内容,今天介绍下在栏目数据调用中从指定行数开始,比如从第2条或第N条开始调用,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

PHPCMS V9 Ckeditor编辑器添加排版功能实现介绍

v9使用的Ckeditor编辑器,在使用过程中有些不尽人意的地方,接下来为大家介绍下我,改动几个地方,让Ckeditor编辑更加实用一些,感兴趣的朋友可以参考下哈,希望可以帮助到你
收藏 0 赞 0 分享

PHPCMS V9评论模块伪静态与TAG模块伪静态设置

本文为大家介绍下PHPCMS V9评论模块伪静态与TAG模块伪静态设置,感兴趣的朋友可以参考下哈,希望对你学习PHPCMS V9有所帮助
收藏 0 赞 0 分享

phpcms 的sso通信失败的解决和思路

朋友的phpcms 在sso 登陆设置中,出现通信失败,最终调试发现,服务器本机linux,无法访问本身域名的ip
收藏 0 赞 0 分享

关于phpcms2008 内部递增标变量 $n 使用时的注意事项

有一个递增的内部变量 $n,它是从1开始逐渐递增的,如果{$n}则表示具体的值,下面为大家介绍下关于phpcms2008 内部递增标变量 $n 的注意事项
收藏 0 赞 0 分享

PHPCMS V9跨站调用推荐位出现URL连接为空问题的解决方法

如果你在使用PHPCMS V9的时候需要在不同的站点之间调用推荐位可能会出现链接的URL为空的情况,下面是具体的解决方法,有类似问题的朋友可以参考下哈
收藏 0 赞 0 分享

Phpcms V9网站从本地上传到服务器需要修改的地方小结

网站在本地做好后要迁移到服务器上;网站在发展的过程中,很可能多次的修改域名。那么在Phpcms V9中我们要怎么进行设置呢
收藏 0 赞 0 分享

phpcms 读不到缓存 页面空白的解决方法

网站在服务器上运行正常,弄到我电脑上进入网站后台,更新缓存页面空白,访问首页还是空白。调试发现是在include/common.inc.php中执行到下面不执行了
收藏 0 赞 0 分享
查看更多