根据wally1发表的《99%实现HTML化的 LeadBBS》原理进行修改。 注意:建议大家不要修改!如果要把论坛(包括插件)全部改成HTM形式的地址的话,不但需要改很多很多文件中的许多链接地址,同时也要在ISAPI_Rewrite转发原则中添加许多许多地址转向的语句,并且会把LeadBBS糟蹋得不成样子。这里只能授人渔而不授人鱼,如果需要修改,请备份论坛全部文件,修改引起的一切损失与此帖无关! 本人这里利用LeadBBS中的另一首页_Boards.asp入手,用转发组件ISAPI_Rewrite把LeadBBS从首页_Boards.asp开始改到查看帖子为止。至于其中发帖、回帖及导航栏“ 检索-用户专区-工具箱-?电台”等链接不予修改---否则真的把LeadBBS糟蹋得不成样子了。 演示:../Boards.htm ===================================== 原理:服务器中安装转发组件ISAPI_Rewrite,并在其httpd.ini文件中经过设置后,能把客户端访问过来的地址,翻译为httpd.ini文件中设定的地址。 ISAPI_Rewrite下载: ISAPIRewritev1.3forIIS.CR.rar ===================================== 现在从下面我的httpd.ini文件的第四句开始,具体说明句子含义。 (一)我的ISAPI_Rewrite中的httpd.ini文件: [ISAPI_Rewrite] # Defend your computer from some worm attacks # RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O] RewriteRule boards.htm _Boards.asp RewriteRule /leadbbs/Boards.htm /leadbbs/_Boards.asp RewriteRule /leadbbs/Board/Board([0-9]*).htm /leadbbs/Board/_Board.asp\?BoardID=$1 RewriteRule /leadbbs/Assort([0-9]*).htm /leadbbs/_Boards.asp\?Assort=$1 RewriteRule /leadbbs/Announce/A([0-9]*)i([0-9]*).htm /leadbbs/Announce/_Announce.asp\?BoardID=$1&ID=$2 (二)句子说明: 第4句、“RewriteRule /leadbbs/Boards.htm /leadbbs/_Boards.asp”,则当客户端浏览器访问“/leadbbs/Boards.htm”时,服务器就传输“/leadbbs/_Boards.asp”的页面数据给客户端。 第5句、“RewriteRule /leadbbs/Board/Board([0-9]*).htm /leadbbs/Board/_Board.asp\?BoardID=$1”,则当客户端浏览器访问“/leadbbs/Board/Board9.htm”时,服务器就传输“/leadbbs/Board/_Board.asp?BoardID=9”的页面数据给客户端。 第6句、“RewriteRule /leadbbs/Assort([0-9]*).htm /leadbbs/_Boards.asp\?Assort=$1”,则当客户端浏览器访问“/leadbbs/Assort9.htm”时,服务器就传输“/leadbbs/_Boards.asp?Assort=9”的页面数据给客户端。 第7句、“RewriteRule /leadbbs/Announce/A([0-9]*)i([0-9]*).htm /leadbbs/Announce/_Announce.asp\?BoardID=$1&ID=$2”,则当客户端浏览器访问“/leadbbs/Announce/A9i9.htm”时,服务器就传输“/leadbbs/Announce/_Announce.asp?BoardID=9&ID=9”的页面数据给客户端。 以此类推。。。 请仔细体会上面句子,我们要做的就是在SAPI_Rewrite的httpd.ini文件中写入当客户端浏览器地址中输入什么htm的地址时,服务器就给他什么asp的页面数据。 ===================================== 首页_Boards.asp文件的具体修改(因为修改的文件实在太多,其他文件不能一一例举说明): 修改(注意对照httpd.ini文件中的语句): 1、查找<a href="/Board/Board.asp?BoardID="" & GetData(0,0) & ">修改为 <a href="/Board/Board"" & GetData(0,0) & ".htm> 意为:把“Board/_Board.asp\?BoardID=$1”类型的链接句子改为“Board/Board([0-9]*).htm”类型的链接句子,此句请对照上面第5句理解。 2、查找<a href="/Boards.asp?Assort="" & GetData(14,0) & ">修改为 <a href="/Assort"" & GetData(14,0) & ".htm> 意为:把“_Boards.asp\?Assort=$1”类型的链接句子改为“Assort([0-9]*).htm”类型的链接句子,此句请对照上面第6句理解。 3、为了不破坏以Boards.asp为首页的论坛程式,复制Announce.asp文件创建为 _Announce.asp文件(用于修改“查看帖子”页面中的一些链接句子)。 查找<a href="/announce/announce.asp?BoardID="" & GetData(0,0) & "&ID=" & GetData(10,0) & "&aupflag=1&anum=1>修改为 <a href="/announce/A"" & GetData(0,0) & "i" & GetData(10,0) & ".htm &aupflag=1&anum=1> 意为:把“Announce/_Announce.asp\?BoardID=$1&ID=$2”类型的链接句子改为“Announce/A([0-9]*)i([0-9]*).htm”类型的链接句子,此句请对照上面第7句理解。 ===================================== 在不破坏以Boards.asp为首页的论坛程式的前提下,从首页_Boards.asp页面改到“查看帖子”页面,需要与上面第3点中创建的 _Announce.asp文件一样,至少还需要创建并修改以下文件(不但要像上面修改首页_Boards.asp一样,修改文件中的那些链接句子;根据你的需要,必要时还要参照httpd.ini文件的句子再添加相应的转向语句): Board/_Board.asp Board/inc/_EBoard_fun.asp Board/inc/_Board_fun.asp announce/_announce.asp inc/_Board_Popfun.asp |