用户名 UID Email
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
各位大哥,请发帖提问,短信回答太局限,拒绝回答鸟~!~
级别: 管理员
楼主  发表于: 2008-07-21 11:32

 解除转换后的流量丢失之——全面Rewrite规则

管理提醒: 本帖被 骨头 执行加亮操作(2008-07-21)
之前写过一个PHPWind保持Dz转换后的搜索引擎带来的流量之rewrite 规则 ,当时对此方面知识尚未深刻了解,局限性太强,今天就全面的写下转换后的几个rewriterule。

主要以这么5个Discuz!,DVBBS,LEOBBS,LEADBBS,BBSXP,,需要更多可以提出来,我帮你写,或者根据这个思路逐渐修改
参考资料:http://httpd.apache.org/docs/2.2/rewrite/rewrite_guide.html  欢迎大家一起来~!~

我的平台是 Apache/2.2.4 (Win32) ,IIS的伪静态规则和apache可以通用, zeus和Nginx规则有些变化,但用的人比较少后面有时间再讲
先针对的是有独立主机权限的用户请注意,高级重写(要写绝对目录,这里举例用/bbs/,请根据实际情况更改):

DZ转换过来的。~【有独立服务器站长,重写规则出错可以找官方侠客,或者找PM我一起解决

请先做一下步骤:

把thread.php复制一份改名为forumdisplay.php
把read.php复制一份改名为viewthread.php
  

这样省事省时,保证动态地址访问正常,接下去开始伪静态重写规则

RewriteRule ^(.*)/archiver/$         [R]


复制代码
  1. # 适用于.htaccess和httpd.conf
  2. RewriteEngine On
  3. RewriteRule ^(.*)/archiver/         /simple/   [R]
  4. RewriteRule ^(.*)/tid-(\d+)\.html   /simple/index.php?t$2.html [R]
  5. RewriteRule ^(.*)/fid-(\d+)\.html  /simple/index.php?f$2.html [R]
  6. RewriteRule ^(.*)/fid-(\d+)-(\d+)-1.html  /simple/index.php?f$2.html [R]
  7. RewriteRule ^(.*)/forum-(\d+)-(\d+)\.html$  $1/thread.php?fid=$2   [R]
  8. RewriteRule ^(.*)/thread-(\d+)-(\d+)-(\d+)\.html$ $1/read.php?tid=$2   [R]
  9. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
  10. RewriteRule ^(.*)simple/([t|f].+).html$ /simple/index.php?$2.html [NC,L]


老版本如果不能实现伪静态,可以尝试一下规则
复制代码
  1. # httpd.ini  在Rewrite的不同版本
  2. RewriteRule ^(.*)-htm-(.*)$   $1\.php\?$2
  3. RewriteRule ^(.*)simple/([t|f].+).html$ /simple/index.php?$2.html [NC]

然后重启IIS或者apache.



或者用下面
复制代码
  1. <IfModule mod_rewrite.c>
  2.        RewriteEngine On
  3.         RewriteCond %{SCRIPT_FILENAME} ^/bbs/forumdisplay.php$  [OR]
  4.         RewriteCond %{SCRIPT_FILENAME} ^/bbs/viewthread.php$  [NC]
  5.         RewriteCond %{QUERY_STRING} fid=(\d+) [OR]
  6.         RewriteCond %{QUERY_STRING} tid=(\d+) [NC]
  7.         RewriteRule (.*)  /%{QUERY_STRING} [NC]
  8.         RewriteRule ^/fid=(\d+)   /bbs/thread.php?fid=$1 [R]
  9.         RewriteRule ^/tid=(\d+)   /bbs/read.php?tid=$1 [R]
  10.         RewriteCond %{SCRIPT_FILENAME} ^/bbs/archiver/$  [NC]
  11.         RewriteCond %{QUERY_STRING} tid-(\d+).html [OR]
  12.         RewriteCond %{QUERY_STRING} fid-(\d+).html [NC]
  13.         RewriteRule (.*)  /%{QUERY_STRING} [NC]
  14.         RewriteRule ^/tid-(\d+).html   /bbs/simple/index.php?t$1.html [R]
  15.         RewriteRule ^/fid-(\d+).html   /bbs/simple/index.php?f$1.html [R]
  16.         RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$  $1/thread.php?fid=$2
  17.         RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/read.php?tid=$2
  18.         RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
  19.         RewriteRule ^(.*)simple/([t|f].+).html$ /simple/index.php?$2.html [NC,L]
  20.        </IfModule>


ZUes的伪静态

复制代码
  1. match URL into ^(.*)/forum-([0-9]+)-([0-9]+)\.html$
  2. if matched then
  3. set URL = $1/thread.php?fid=$2
  4. endif
  5. match URL into $ with ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$
  6. if matched then
  7. set URL = $1/read.php?tid=$2
  8. endif
  9. match URL into $ with ^(.*)-htm-(.*)$
  10. if matched then
  11. set URL = $1.php?$2
  12. endif
  13. match URL into $ with ^(.*)/simple/([a-z0-9\_]+\.html)$
  14. if matched then
  15. set URL = $1/simple/index.php?$2
  16. endif





DVBBS转换过来的
1\IIS的httpd.ini
复制代码
  1. [ISAPI_Rewrite]
  2. RewriteEngine On
  3. CacheClockRate 3600
  4. RepeatLimit 32
  5. RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]
  6. RewriteRule ^(.*)/dispbbs.asp\?boardid=(\d+)&Id=(\d+)  $1/read.php?tid=$3 [NC]
  7. RewriteRule ^(.*)/dispbbs.asp\?boardid=(\d+)&id=(\d+)  $1/read.php?tid=$3 [R]
  8. RewriteRule ^(.*)/dispbbs.asp\?BoardID=(\d+)&Id=(\d+)  $1/read.php?tid=$3 [R]
  9. RewriteRule ^(.*)/index.asp\?boardid=(\d+)  $1/thread.php?fid=$2 [R]
  10. RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
  11. RewriteRule ^(.*)simple/([t|f].+).html$ /simple/index.php?$2.html [NC,L]
  12. #Code By Josh @ PHPWind 2008-09-25 ?([a-zA-Z]+)


2、apache
复制代码
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3. RewriteCond %{SCRIPT_FILENAME} ^/bbs/index.asp$  [NC]
  4. RewriteCond %{QUERY_STRING} boardid=(\d+)$ [NC]
  5. RewriteRule (.*)  /%{QUERY_STRING} [NC]
  6. RewriteRule ^/boardid=(\d+)$ /bbs/thread.php?fid=$1 [R]
  7. RewriteCond %{SCRIPT_FILENAME} ^/bbs/dispbbs.asp$  [NC]
  8. RewriteCond %{QUERY_STRING} boardid=(\d+)&Id=(\d+) [NC]
  9. RewriteRule (.*)  /%{QUERY_STRING} [NC]
  10. RewriteRule ^/boardid=(\d+)&Id=(\d+)  /bbs/read.php?tid=$2 [R]
  11.     RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
  12.     RewriteRule ^(.*)simple/([t|f].+).html$ /simple/index.php?$2.html [NC,L]
  13. </IfModule>


LEOBBS转换过来的
复制代码
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3. RewriteCond %{SCRIPT_FILENAME} ^/bbs/cgi-bin/forums.cgi$  [NC]
  4. RewriteCond %{QUERY_STRING} forum=(\d+)$ [NC]
  5. RewriteRule (.*)  /%{QUERY_STRING} [NC]
  6. RewriteRule ^/forum=(\d+)$   /bbs/thread.php?fid=$1 [R]
  7. RewriteCond %{SCRIPT_FILENAME} ^/bbs/cgi-bin/topic.cgi$  [NC]
  8. RewriteCond %{QUERY_STRING} forum=(\d+)&topic=(\d+) [NC]
  9. RewriteRule (.*)  /%{QUERY_STRING} [NC]
  10. RewriteRule ^/forum=(\d+)&topic=(\d+)  /bbs/read.php?tid=$2 [R]
  11.     RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
  12.     RewriteRule ^(.*)simple/([t|f].+).html$ /simple/index.php?$2.html [NC,L]
  13. </IfModule>


BBSXP转换过来的
复制代码
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3. RewriteCond %{SCRIPT_FILENAME} ^/bbs/ShowForum.asp$  [NC]
  4. RewriteCond %{QUERY_STRING} ForumID=(\d+) [NC]
  5. RewriteRule (.*)  /%{QUERY_STRING} [NC]
  6. RewriteRule ^/ForumID=(\d+)   /bbs/thread.php?fid=$1 [R]
  7. RewriteCond %{SCRIPT_FILENAME} ^/bbs/ShowPost.asp$  [NC]
  8. RewriteCond %{QUERY_STRING} ThreadID=(\d+) [NC]
  9. RewriteRule (.*)  /%{QUERY_STRING} [NC]
  10. RewriteRule ^/ThreadID=(\d+)  /bbs/read.php?tid=$1 [R]
  11.     RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
  12.     RewriteRule ^(.*)simple/([t|f].+).html$ /simple/index.php?$2.html [NC,L]
  13. </IfModule>


LEADBBS转换过来的
复制代码
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3. RewriteCond %{SCRIPT_FILENAME} ^/bbs/b/b.asp$  [NC]
  4. RewriteCond %{QUERY_STRING} B=(\d+) [NC]
  5. RewriteRule (.*)  /%{QUERY_STRING} [NC]
  6. RewriteRule ^/B=(\d+)   /bbs/thread.php?fid=$1 [R]
  7. RewriteCond %{SCRIPT_FILENAME} ^/bbs/a.asp$  [NC]
  8. RewriteCond %{QUERY_STRING} B=(\d+)&ID=(\d+) [NC]
  9. RewriteRule (.*)  /%{QUERY_STRING} [NC]
  10. RewriteRule ^/B=(\d+)&ID=(\d+)  /bbs/read.php?tid=$2 [R]
  11.     RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
  12.     RewriteRule ^(.*)simple/([t|f].+).html$ /simple/index.php?$2.html [NC,L]
  13. </IfModule>




  下帖讲无独立服务器权限的。
本帖最近评分记录:
  • 威望:+1(gamemx) 本人试过了作用不大,对 ..
  • 威望:+5(小猴) 优秀文章-欢迎进行技术交 ..
  • 威望:+3(灰机) 您怎么啥都会?
  • 威望:+10(大力) 甚、强、巨、大、猛!!!
  • 威望:+5(慕容暖暖) 很强大
  • 金钱:+11(MGarfield) 优秀文章-欢迎进行技术交 ..
  • 搜索更多相关文章:rewrite 服务器 PHP 流量 静态
    ||+>PHPWind 7.0 权限设置教程|Mysql错误查询!|||成长计划II web版 |Spam反垃圾插件  -----------
  • 官方PW7分流下载: http://www.stwind.org/soft/phpwind7
    ---------------------------------短信不回答,请发帖-------------------------
  • 友情AD:天翼互联★★★★☆ | 分享PHPWind :STWind.org
  • 各位大哥,请发帖提问,短信回答太局限,拒绝回答鸟~!~
    级别: 管理员
    1楼  发表于: 2008-07-21 11:33
    本楼说说,无独立服务器权限的做法:

    分两种情况,一是支持.htaccess,一种是不支持伪静态的虚拟空间。
    对于支持.htaccess的空间,可以套用转发规则进行处理.

    无法用重写的,我们用文件来补救

    DZ:
    把thread.php复制一份改名为forumdisplay.php
    把read.php复制一份改名为viewthread.php


    这样省事省时,哈哈,祝大家愉快!

    DVBBS:
    如果你的服务器还支持ASP的话
    可以在index.asp和dispbbs.asp上面做下。

    更可科学的方法还待研究,欢迎我的砖头(抛砖引玉),更渴望大家把玉扔出来分享



    。。。。。。。。。。
    ||+>PHPWind 7.0 权限设置教程|Mysql错误查询!|||成长计划II web版 |Spam反垃圾插件  -----------
  • 官方PW7分流下载: http://www.stwind.org/soft/phpwind7
    ---------------------------------短信不回答,请发帖-------------------------
  • 友情AD:天翼互联★★★★☆ | 分享PHPWind :STWind.org
  • 每天到PHPWIND学习
    级别: 商业版用户
    2楼  发表于: 2008-07-21 11:34
    老大,是强人啊
    最近太忙,升级风格工作先缓一缓
    级别: 论坛版主
    3楼  发表于: 2008-07-21 11:35
    好强大~~~
    今天来的比昨天早······因为······我昨天没来····(*^__^*)
    级别: Wind helper
    4楼  发表于: 2008-07-21 11:36
    支持
    开始灌水!!
    级别: PW官方侠客
    5楼  发表于: 2008-07-21 11:36
       骨头`
    有四片的叶子吗!?~

    PW官方第二帅的帅哥~^_^

    本人小站:安昌古镇
    lyn
    听说pw老大是猜拳决定的?胡说!是抽签决定的……
    级别: 总版主
    6楼  发表于: 2008-07-21 11:37
    支持。。。。。。。
    我们不是在对个别人作战,而是在将资产阶级作为一个阶级消灭。
    级别: PW官方团队
    7楼  发表于: 2008-07-21 11:37
    混个第一页。支持骨头
    国内首款php开源DIGG系统
    PBDiggpbdigg.com 免费 & 开源


    祝你新年万事如意,长生不老,刀枪不入!
    级别: PW官方团队
    8楼  发表于: 2008-07-21 11:40
    猛的~
    | 私家车107、快乐广播、城市之声|
    灰机又来了!!!
    级别: 四星会员
    9楼  发表于: 2008-07-21 11:40

    传说中的全才!
    再指指点点的,当心灰下来砸死你
    vc演示站:www.bencp.com
    用户消失
    级别: 论坛版主
    10楼  发表于: 2008-07-21 12:08
    哦。哦。哦。哦。
    凡人不做凡事
    级别: PW官方侠客
    11楼  发表于: 2008-07-21 12:12
    顶一个。。。
    &×%¥¥%#……&×(
    再说一次.我是男生!!
    级别: 论坛版主
    12楼  发表于: 2008-07-21 12:14
    支持.
    administrator
    级别: 论坛版主
    13楼  发表于: 2008-07-21 13:07
    支持,zeus的有没有???