登录注册

one-long

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 268|回复: 0
打印 上一主题 下一主题

ASP彻底实现伪静态化html

[复制链接]

4888

主题

4917

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
15163
跳转到指定楼层
楼主
发表于 2016-8-25 09:50:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ASP彻底实现伪静态化html

      信息来源:AFan                        作者:佚名发布时间:2008-10-18浏览:我要评论
      
          
          

                 
  • 推一把网络营销精英培训新一期即将开课,本期新增移动电商、微商、O2O、自媒体、社群等方面的课程,现在报名就送江礼坤老师亲笔签名的最新版《网络营销推广实战宝典》一书。欢迎咨询QQ:800007518!
                 

          
        
  这段时间在网上待的时间较多!为了查找关于实现ASP动态内容的静态化处理花了我的多少时间,到处看了下,大多数是转载而来,几乎雷同,主要有以下几种方法:

  1 > 用程序写到硬盘.ASP FS对象的文件流处理.每个文章都有实际的路径.如果要发布大量内容,则需要大容量空间,而且不好维护,修改都不方便,好处在于减轻服务器的访问负担,容易被搜索引擎收录,大大减少并防止黑客攻击,稍有规模的网站都全部静态化了,如新浪,搜狐等.

  2 > 组件如ISAPI_Rewrite重写.有自己服务器的站长还好办,虚拟主机的朋友就稍麻烦,除非请求服务商安装这个插件,再将程序参数提交服务器实现转化,看上去是静态化了,实际上是用静态路径访问数据库的内容.对于搜索引擎收入有一定作用.而且许多站长正是为此为苦苦寻找.

  以上两种方法俱体怎么做,大家上网搜索一下就会发现一大把....

  3 >第三种比较假就是把show.asp?id=http://youhua.tui18.com/200810/26 转成show.asp?/26.html这样做也许对搜索引擎来说有点作用,不过防安全注入一点作用也没有.但只要做好防范工作,这种方法还是比较适合大多数虚拟主机的站长们.我这里就重点介绍使用第三种方法来实现静态化处理.

  本实例实现效果:http://faninfo.cn/news.asp?id=http://youhua.tui18.com/200810/201转换成

  http://faninfo.cn/news/?/201.html

  (转载请注明起步者博客faninfo.cn/blog)

  --------------

  一 准备工作

  在网站目录新建文件夹news,并新建一个主页文件index.asp,数据库data.mdb(字段id,Title,Content,)及ConnDB.asp

  二 代码实现

  数据连接文件ConnDB.asp



   
        
            <%
dim conn
dbpath=&quot;data.mdb&quot;
Set conn = Server.CreateO
connstr=&quotrovider=Microsoft.Jet.OLEDB.4.0;Data Source=&quot; & Server.MapPath(dbpath)
conn.open connstr
If Err Then
err.Clear
Set conn = Nothing
Response.Write &quot;数据库连接出错,请稍候访问。&quot;
Response.End
End If
'新闻阅读模块
Dim News_title,News_content
Sub ReadNews()
set rs1=server.createobject(&quot;adodb.recordset&quot;)
sql1=&quot;select id,title,content from article where id=http://youhua.tui18.com/200810/"& ID
rs1.open sql1,conn,3,3
News_title=rs1(&quot;title&quot;)
News_content=rs1(&quot;content&quot;)
rs1.close
set rs1=Nothing
End Sub
%>
bject(&quot;ADODB.Connection&quot;)
connstr=&quotrovider=Microsoft.Jet.OLEDB.4.0;Data Source=&quot; & Server.MapPath(dbpath)
conn.open connstr
If Err Then
err.Clear
Set conn = Nothing
Response.Write &quot;数据库连接出错,请稍候访问。&quot;
Response.End
End If
'新闻阅读模块
Dim News_title,News_content
Sub ReadNews()
set rs1=server.createobject(&quot;adodb.recordset&quot;)
sql1=&quot;select id,title,content from article where id=http://youhua.tui18.com/200810/"& ID
rs1.open sql1,conn,3,3
News_title=rs1(&quot;title&quot;)
News_content=rs1(&quot;content&quot;)
rs1.close
set rs1=Nothing
End Sub
%>

        
   



news-list.asp



   
        
            
            

<!--#include file=&quot;ConnDB.asp&quot;-->
<ol>
<%
Set rs=server.CreateObject(&quot;adodb.recordset&quot;)
sql=&quot;select * from Article&quot;
rs.open sql,conn,1,1
do while not rs.eof
%>
<li><a href=http://youhua.tui18.com/200810/"news/?/.html"> _fcksavedurl=""news/?/.html">"
<%
rs.movenext
loop
rs.close
set rs=Nothing
%>
</ol>


            
        
   



好了,现在编写新闻正文阅读页面news/index.asp

index.asp


   
        
            
            
<!--#include file=&quot;ConnDB.asp&quot;-->

            
<%
id=http://youhua.tui18.com/200810/request.QueryString("id")
If id=http://youhua.tui18.com/200810/"" Then
Pater=Request.ServerVariables(&quot;query_string&quot;)
id=http://youhua.tui18.com/200810/Int(replace(replace(Pater,"/",""),".html",""))'replace替换函数,如将html和/替成空的
End If
Call ReadNews()
%>
<div>
<b><%= News_title%></b><br /> '主题
<%=News_content%> '正文
</div>


            
        
   



  这样实现的效果如:http://www.faninfo.cn/news/?/201.html 我们知道Windows文件夹命名规则

  是不允许包含?的所以在这里只起视觉欺骗的作用.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则