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

2016-04-05cms教程
18

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";
}


The End

相关推荐

网站图片丢失或者获取失败时显示默认图片的办法
当我们的网站时间久了难免会出现图片丢失或者误删,这样文章的图片就无法显示了,会让页面变的很难看。那么当网站图片丢失或者获取失败时如何显示我们设置的默认图片呢,或者默认多张图片随机显示呢。 方法一:当图片调用失败后,会用图片后面设置的默认图片...
2022-10-24 cms教程
71

修改帝国CMS默认提示框样式为layui
修改帝国CMS默认提示框样式为layui,修改文件:e/message/index.php link href="?=$public_r[newsurl]?hmb2019/css/layui.css" rel="stylesheet" type="text/css"div class="layui-container" div class="layui-card" style="width:400px;box-shadow: 1px 1px...
2022-10-20 cms教程
331

WordPress上一篇、下一篇文章链接添加title属性的方法
上一篇、下一篇文章代码: ?php previous_post_link(%link,) ??php next_post_link(%link,) ? 该代码解析出来的代码大概如下: a href= rel=external nofollow rel=external nofollow /aa href= rel=external nofollow rel=external nofollow /a 通过 get_pr...
2017-08-03 cms教程
358

WordPress去除链接添加 Noopener Noreferrer 的教程
WordPress目前在最近的版本中为所有需要新窗口打开的链接都自动添加了新的 noopener noreferrer 属性。noopener noreferrer 属性并不是新发布的标准,但 WordPress 4.7.4 版开始的编辑器默认都会添加该属性。新窗口打开超链接的属性 target=_blank 增加 rel=...
2017-07-31 cms教程
232

dicuz搭建的论坛如何修改改后台地址?
用discuz搭建的论坛,后台默认地址是 域名加 admin.php,很多站长怕网站被黑客攻击,一般黑客会扫描admin文件,然后破解管理员账户登录后台,所以想修改后台的地址。直接修改 admin.php 名并放到其他文件夹里,访问后台用修改过的路径虽然能访问,但是会出错...
2017-07-08 cms教程
364

phpcms筛选功能(经典无错)---汇总网上各种版本!
phpcms的筛选功能,网上有各种版本,但是多多少少都会有点问题,不是很完美,下面我总结网上各种版本,加上自己的研究,得出一个算是比较全的一个资料,既可以分页,也可以分栏目! 第一步:后台添加字段 添加字段: 后台--内容--内容相关设置--模型管理--文...
2017-06-26 cms教程
436