论坛风格切换切换到宽版
  • 45904阅读
  • 112回复

[分享]PW伪静态之简单而强大设置教程(美观浏览地址)修正圣诞版本 [复制链接]

上一主题 下一主题
在线骨头
 

发帖
27319
金钱
3728
威望
136377
只看楼主 倒序阅读 使用道具 楼主  发表于: 2008-12-18
不可否认,Rewrite 受到很多站长的喜欢,也受几个大的搜索引擎所亲睐,在7版本升级之际把这个传说中的神秘方法分享给大家,先看下案例  ,如dedecms,huodao等论坛的伪静态,下面是ST的
板块访问地址:http://www.stwind.org/_22
帖子访问地址:http://www.stwind.org/r5764.html   (完全可以做到/5764.html,按个人喜好!)

说明:由于win和unix的差异,之前版本在win机器IIS下兼容不好,比如导致头像下载问题,感谢蓝冰宝宝反馈问题。
一下版本以及文件是修正过的圣诞版本,可以兼容IIS/apache/.htaccess,如果不成功可以回帖说明!

                  
下面开始教程分享,使用的前提条件是 支持Rewrite 可以在IIS/apache/nginx      以及虚拟主机的上的 .htaccess。
第一步:
添加规则
IIS/apache/.htaccess

这说明下,服务器端的-》 IIS的伪静态配置文件为httpd.ini ,apache的的配置文件为 httpd.conf,  虚拟主机支持为静态的文件为 .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/_(.*)_(.*)$ $1/thread.php?fid=$2&page=$3
RewriteRule ^(.*)/_(.*)$      $1/thread.php?fid=$2&page=$3
RewriteRule ^(.*)/(.*)_(.*)_(.*).html$  $1/read.php?tid=$2&page=$3&fpage=$4  
RewriteRule ^(.*)/(.*)_(.*).html$       $1/read.php?tid=$2&page=$3&fpage=$4  
RewriteRule ^(.*)/(.*).html$         $1/read.php?tid=$2
</IfModule>

nginx  
  1. rewrite ^(.*)/_(.*)_(.*)$ $1/thread.php?fid=$2&page=$3 last;
  2. rewrite ^(.*)/_(.*)$      $1/thread.php?fid=$2 last;
  3. rewrite ^(.*)/(.*)_(.*)_(.*).html$  $1/read.php?tid=$2&page=$3&fpage=$4  last;
  4. rewrite ^(.*)/(.*)_(.*).html$       $1/read.php?tid=$2&page=$3  last;
  5. rewrite ^(.*)/(.*).html$         $1/read.php?tid=$2 last;
  6. rewrite ^(.*)-htm-(.*)$ $1.php?$2 last;


第二步:

打开global.php
查找
  1. function Htm_cv($url,$tag){
  2.     global $db_dir,$db_ext;
  3.     if (!preg_match('/^(http|ftp|telnet|mms|rtsp)|admin.php|rss.php/i',$url)) {
  4.         $tmppos = strpos($url,'#');
  5.         $add = $tmppos!==false ? substr($url,$tmppos) : '';
  6.         $url = str_replace(
  7.             array('.php?','=','&',$add),
  8.             array($db_dir,'-','-',''),
  9.             $url
  10.         ).$db_ext.$add;
  11.     }
  12.     return stripslashes($tag)."$url\"";
  13. }

整个函数换成
  1. function Htm_cv($url, $tag){//modify By Josh
  2.      global $db_dir, $db_ext;
  3.      if (!preg_match('/^(http|ftp|telnet|mms|rtsp)|admin.php|rss.php/i', $url)){
  4.          $add = strpos($url, '#') !== false ? substr($url, strpos($url, '#')) : '';
  5.          if(strpos($url, 'thread.php?') !== false){
  6.              unset($rw); //$rw type  $ru  array
  7.              $tharr = explode('&', substr(str_replace($add, '', $url), 11));
  8.              foreach($tharr as $key => $value){
  9.                  $ru = explode('=', $value, 2);
  10.                  if($ru['1']){
  11.                      switch($ru['0']){
  12.                      case 'fid':
  13.                          $rw['fid'] = $ru['1'];
  14.                          $rw['type'] < 1 && $rw['type'] = 1;
  15.                          break;
  16.                      case 'page':
  17.                          $rw['page'] = $ru['1'];
  18.                          $rw['type'] < 2 && $rw['type'] = 2;
  19.                          break;
  20.                      default:
  21.                          $rw['type'] = 4;
  22.                          $urlfail = 1;
  23.                          break;
  24.                          }
  25.                      }
  26.                  }
  27.              switch($rw['type']){
  28.              case '1':
  29.                  $url = "_" . $rw['fid'] ;
  30.                  break;
  31.              case '2':
  32.                  $url = "_" . $rw['fid'] . "_" . $rw['page'] ;
  33.                  break;
  34.                  }
  35.              }elseif(strpos($url, 'read.php?') !== false){
  36.              unset($rw);
  37.              $rarr = explode('&', substr(str_replace($add, '', $url), 9));
  38.              foreach($rarr as $key => $value){
  39.                  $ru = explode('=', $value, 2);
  40.                  if($ru['1']){
  41.                      switch($ru['0']){
  42.                      case 'tid':
  43.                          $rw['tid'] = $ru['1'];
  44.                          $rw['type'] < 1 && $rw['type'] = 1;
  45.                          break;
  46.                      case 'page':
  47.                          $rw['page'] = $ru['1'];
  48.                          $rw['type'] < 2 && $rw[type] = 2;
  49.                          break;
  50.                      case 'fpage':
  51.                          $rw['fpage'] = $ru['1'];
  52.                          $rw['type'] < 3 && $rw['type'] = 3;
  53.                          break;
  54.                      default:
  55.                          $rw['type'] = 4;
  56.                          $urlfail = 1;
  57.                          break;
  58.                          }
  59.                      }
  60.                  }
  61.              switch($rw['type']){
  62.              case '1':
  63.                  $url = $rw['tid'] . ".html";
  64.                  break;
  65.              case '2':
  66.                  $url = $rw['tid'] . "_" . $rw['page'] . ".html";
  67.                  break;
  68.              case '3':
  69.                  $url = $rw['tid'] . "_" . $rw['page'] . "_" . $rw['fpage'] . ".html";
  70.                  break;
  71.                  }
  72.              }
  73.          if($urlfail){
  74.              $url = str_replace(
  75.                 array('.php?', '=', '&', $add),
  76.                  array($db_dir, '-', '-', ''),
  77.                  $url
  78.                 ) . $db_ext . $add;
  79.              }
  80.          }
  81.      return stripslashes($tag) . "$url\"";
  82.     }


或者复制附件里的global.php for 6.32

OK,修改完成,开始享受你的伪静态吧~!~


GO~~  一起庆祝官方升级!!!  PHPWind 7.0
附件: global_for6.32修正版本.zip (13 K) 下载次数:668
8条评分
蒋建平 威望 +10 您已经变相的刷屏了,请 .. 2008-12-18
ymmfa 威望 +3 骨头我爱你 2008-12-18
友讯 威望 +5 老蒋说的,你已经变相刷 .. 2008-12-18
书山有路 威望 +5 win服务器是什么规则啊 .. 2008-12-18
蒋建平 威望 +10 您已经变相的刷屏了,请 .. 2008-12-18
ymmfa 威望 +3 骨头我爱你 2008-12-18
友讯 威望 +5 老蒋说的,你已经变相刷 .. 2008-12-18
书山有路 威望 +5 win服务器是什么规则啊 .. 2008-12-18

客户端及版本等新消息请关注 新浪微博@某骨头 .


离线桃子
发帖
8124
金钱
5711
威望
4568
只看该作者 沙发  发表于: 2008-12-18
伪静态有很多人都需要~~
骨头辛苦发片
压力是导致秃顶的原因,所以请注意不要压力太大,但这样一来反而容易堆积压力,所以归根到底我们无能为力
离线zzhcool
发帖
529
金钱
382
威望
8
只看该作者 板凳  发表于: 2008-12-18
好。。。。
离线ЕС
发帖
572
金钱
185
威望
134
只看该作者 3楼 发表于: 2008-12-18
这个要支持
离线artc001
发帖
523
金钱
533
威望
32
只看该作者 4楼 发表于: 2008-12-18
  
离线qqq123

发帖
2484
金钱
10
威望
496
只看该作者 5楼 发表于: 2008-12-19
沙发
离线印像自由
发帖
2146
金钱
1223
威望
67
只看该作者 6楼 发表于: 2008-12-19
不错.
离线wyslnhhh56
发帖
4518
金钱
2324
威望
297
只看该作者 7楼 发表于: 2008-12-19
这个真的对搜索好吗?要是真好为什么PW官网不用?
离线nimeilai

发帖
157
金钱
275
威望
5
只看该作者 8楼 发表于: 2008-12-19

这个好强大啊
一定支持了
离线shuohuaznl
发帖
619
金钱
5
威望
55
只看该作者 9楼 发表于: 2008-12-19
来的太迟了,好东西还在啊
离线aiwe
发帖
395
金钱
610
威望
81
只看该作者 10楼 发表于: 2008-12-19
请问这个影响收录么?
7.0块发布了~支持7.0么~呵呵
离线will9188

发帖
1401
金钱
8
威望
335
只看该作者 11楼 发表于: 2008-12-19
好东西,顶你了!
离线fxs44902
发帖
1267
金钱
424
威望
-660
只看该作者 12楼 发表于: 2008-12-19
用户被禁言,该主题自动屏蔽!
离线424690680
发帖
2231
金钱
2357
威望
202
只看该作者 13楼 发表于: 2008-12-19
支持哈 用不上1
离线林家女孩

发帖
1916
金钱
390
威望
26
只看该作者 14楼 发表于: 2008-12-19
这个不错。
快速回复
限80 字节
温馨提示:欢迎交流讨论,请勿纯表情、纯引用!
 
上一个 下一个