我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PHPwind高级伪静态规则及教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PHPwind高级伪静态规则及教程

写在前面的话. PW8 是个里程碑式的版本,有门户,有频道,等多元素多模式组成, stwind高度伪静态(超级伪静态)的处理方法仅仅适用于论坛部分. 并尽力避免与其他操作和地址产生冲突.在这个版本, 改变了几个变量,一个是列表页的变量,一个是过滤特殊字符的变量,  地址组成依然不变, 帖子也依然以 article 为前缀, 列表页以commtopics 链接.pw8里函数改动较大,所以修改也较为麻烦. 考虑到会被任意修改,以后版本考虑单个加密这个文件.  本次依然沿用以前的风格. 

一,打开require/common.php

找到

function urlRewrite($url) {

    global $db_htmifopen, $db_dir, $db_ext;

    if (!$db_htmifopen) return $url;

    $tmppos = strpos($url, '#');

    $add = $tmppos !== false ? substr($url, $tmppos) : '';

    $turl = str_replace(array('.php?', '=', '&', '&', $add), array($db_dir, '-', '-', '-', ''), $url);

    $turl != $url && $turl .= $db_ext;

    return $turl . $add;

}

替换成

function urlRewrite($url) {

    global $db_htmifopen, $db_dir, $db_ext;

    if(strpos($url, 'thread.php?') !== false){

         unset($URL_type);

         $Thread_array = explode('&', substr(str_replace($add, '', $url), 11));

          foreach($Thread_array as $key => $value){

             $URL_array = explode('=', $value, 2);

              if($URL_array['1']){

               switch($URL_array['0']){

                case 'fid':

                    $URL_type['fid'] = $URL_array['1'];

                    $URL_type['type'] < 1 && $URL_type['type'] = 1;

                break;

                case 'page':

                    $URL_type['page'] = $URL_array['1'];

                    $URL_type['type'] < 2 && $URL_type['type'] = 2;

                break;

                default:

                    $URL_type['type'] = 4;

                break;

                }}}

         switch($URL_type['type']){

           case '1':

               $url = "commtopics-" . $URL_type['fid'] ; break;               

           case '2':

               $url = "commtopics-" . $URL_type['fid'] . "-" . $URL_type['page'] ;   break;

             }}elseif(strpos($url, 'read.php?') !== false){

                unset($URL_type);

             $tmppos = strpos($url, '#');

           $add = $tmppos !== false ? substr($url, $tmppos) : '';

              $Read_array = explode('&', substr(str_replace($add, '', $url), 9));

                foreach($Read_array as $key => $value){

                $URL_array = explode('=', $value, 2);

                if($URL_array['1']){

                    switch($URL_array['0']){

                        case 'tid':

                            $URL_type['tid'] = $URL_array['1'];

                            $URL_type['type'] < 1 && $URL_type['type'] = 1;

                            break;

                        case 'page':

                            $URL_type['page'] = $URL_array['1'];

                            $URL_type['type'] < 2 && $URL_type[type] = 2;

                            break;

                        case 'fpage':

                            $URL_type['fpage'] = $URL_array['1'];

                            $URL_type['type'] < 3 && $URL_type['type'] = 3;

                            break;

                        default:

                            $URL_type['type'] = 4;

                            break;

                        }}}

          switch($URL_type['type']){

             case '1':

                 $url = "article-".$URL_type['tid'].".html" ;

                 break;

             case '2':

                 $url = "article-".$URL_type['tid'] . "-" . $URL_type['page'].".html" ;

                 break;

             case '3':

                 $url = "article-". $URL_type['tid'] . "-" . $URL_type['page'] . "-" . $URL_type['fpage'].".html" ;

                 break;

                 }

             }

        //      $url .= $db_ext;  很多人以为后缀问题,故作特处理。

    return $url . $add;

}

规则如下.  添加到httpd.ini或者.htaccess 或者其他

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteRule ^thread-htm-tid-(\d+)-(.*).html  thread.php?fid=$1

RewriteRule ^read-htm-tid-(\d+)-(.*).html  read.php?tid=$1

RewriteRule ^commtopics-(\d+)-(.*)  thread.php?fid=$1&page=$2

RewriteRule ^commtopics-(.*)       thread.php?fid=$1&page=$2

RewriteRule ^article-(\d+)-(\d+)-(.*).html  read.php?tid=$1&page=$2&fpage=$3

RewriteRule ^article-(\d+)-(\d+).html       read.php?tid=$1&page=$2

RewriteRule ^article-(.*).html             read.php?tid=$1

RewriteRule ^(.*)-htm-(.*).html    $1.php?$2

RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ $1/simple/index.php?$2

</IfModule>

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PHPwind高级伪静态规则及教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHPwind高级伪静态规则及教程

写在前面的话. PW8 是个里程碑式的版本,有门户,有频道,等多元素多模式组成, stwind高度伪静态(超级伪静态)的处理方法仅仅适用于论坛部分. 并尽力避免与其他操作和地址产生冲突.在这个版本, 改变了几个变量,一个是列表页的变量,一个
2022-06-12

phpwind伪静态规则(IIS,Nginx,Apache)的介绍及代码

phpwind iis下伪静态规则[ISAPI_Rewrite]RewriteRule ^(.*)/(.*)-htm-(.*)-(.*)\.html$ $1/$2\.php\?$3=$4RewriteRule ^(.*)/read-htm-
2022-06-12

dedecms5.3伪静态及rewrite规则

1 首先需要在后台开启伪静态(服务器必须支持) 2 设置栏目必须是使用动态页 3修改 include/channelunit.func.php 文件 查找 复制代码代码如下: $reurl = $GLOBALS['cfg_phpurl'].
2022-06-12

Typecho程序伪静态规则

Typecho程序的伪静态规则不同于wp直接默认可用,需要我们手工加载到空间中才可以生效。下面老左整理了这款程序在不同的主机环境中的伪静态规则,希望对大家有所帮助 虽然老左博客是用的Wordpress程序,但是我不得不说wp程序即便是一款非
2023-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录