ASP徹底成功實現偽靜態化html

  這段時間在網上待的時間較多!為了查尋關於成功實現ASP動態內部實質意義的靜態化處置花了我的多不多時間,滿眼看了下,大部分數是過載而來,幾乎雷同,主要有以下幾種辦法:

  1 > 用手續寫到硬盤.ASP FS對象的文件流處置.每個文章都有實際的途徑.假如要宣布數量多內部實質意義,則需求大容積空間,並且非常不好保護,改正都不便,益處在於減緩服務器的過訪負擔,容易被搜索引擎網站收錄,大大減損並避免黑客殲擊,稍有規模的網站都所有靜態化了,如新浪,搜狐等.

  2 > 組件如ISAPI_Rewrite重寫.有自個兒服務器的站長還好辦,虛擬主機的朋友就稍麻煩,錯非煩請服務商安裝這個插件,再將手續參變量提交處理服務器成功實現轉化,看中去是靜態化了,其實是用靜態途徑過訪數值庫的內部實質意義.對於搜索引擎網站收益有一定效用.並且很多站長正是為此為苦苦尋覓.

  3 >第三種比較假就是把show.asp?id=26 轉成show.asp?/26.html這麼做或許對搜索引擎網站來說有些效用,然而防安全灌注一點兒效用也沒有.但只要做好防備辦公,這種辦法仍然比較適應大部分數虛擬主機的站長們.我這處就重點紹介運用第三種辦法來成功實現靜態化處置.

  本實際的例子成功實現效果:

  ————–

  一 准備辦公

  在網站目次新建文件夾news,並新建一個主頁文件index.asp,數值庫data.mdb(字段id,Title,Content,)及ConnDB.asp

  二 代碼成功實現

  數值連署文件ConnDB.asp

<百分之百
dim conn
dbpath=data.mdb
Set conn = Server.CreateObject(ADODB.Connection)
connstr=Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & Server.MapPath(dbpath)
conn.open connstr
If Err Then
err.Clear
Set conn = Nothing
Response.Write 數值庫連署出錯,請稍候過訪。
Response.End
End If
‘新聞閱覽板塊
Dim News_title,News_content
Sub ReadNews()
set rs1=server.createobject(adodb.recordset)
sql1=select id,title,content from article where id=& ID
rs1.open sql1,conn,3,3
News_title=rs1(title)
News_content=rs1(content)
rs1.close
set rs1=Nothing
End Sub
百分之百>

news-list.asp


<!–#include file=ConnDB.asp–>
<ol>
<百分之百
Set rs=server.CreateObject(adodb.recordset)
sql=select * from Article
rs.open sql,conn,1,1
do while not rs.eof
百分之百>
<li><a href=news/?/<百分之百=rs(id)百分之百>.html><百分之百=left(trim(rs(title)),30)百分之百></a></li> _fcksavedurl=news/?/<百分之百=rs(id)百分之百>.html><百分之百=left(trim(rs(title)),30)百分之百></a></li>
<百分之百
rs.movenext
loop
rs.close
set rs=Nothing
百分之百>
</ol>

好了,如今編著新聞正文閱覽頁面news/index.asp

index.asp

<!–#include file=ConnDB.asp–>

<百分之百
id=request.QueryString(id)
If id= Then
Pater=Request.ServerVariables(query_string)
id=Int(replace(replace(Pater,/,),.html,)) ‘replace調換函數,如將html和/替成空的
End If
Call ReadNews()
百分之百>
<div>
<b><百分之百= News_title百分之百></b><br /> ‘正題
<百分之百=News_content百分之百> ‘正文
</div>

  這麼成功實現的效果如: 我們曉得Windows文件夾起名稱規則

  是不准許裡面含有?的所以在這處只起視物感覺哄弄的效用.

  一樣我們能否將?經過replace函數改換成這種效果: 呢?

  這是我到現在為止總結概括出來的,准備用在我的主頁上,演習地址:(未完),當然,我信任會有更好的解決辦法,假如有興致的朋友請來本站交流.