这两天有很多朋友问怎么讲自己的网站生成静态页面,甚至不惜代价将服务器账户提供给网友。因此我整理了这些方法希望能帮到各位站长,尽快将自己的网站自动生成静态页面。
其实,目前,各大搜索引擎如google、百度、雅虎已经对动态页面诸如asp,php有着不错的支持了,只要动态页面后面的参数不要太长,如控制在3个参数内,页面内容做点优化,各大搜索对该类页面收录甚至不比静态html页面差,我有个全站是asp页的网站(http://www.shanxitianhao.com),其收录及排名远远超过了很多静态页的网站。
无论是什么网站,结构再好,seo的再强,终究只是骨架好,要有血有肉才能帅的嘛。内容是网站的灵魂,一个没有灵魂的人能活多久?一个没有内容作为支撑的网站,最终也是留不住用户的。百度、谷歌、微软bing、雅虎、狗狗等发展的水平已经不能同日而语了。索引技术日新月异,一般的动态页面在它们那里已经是能够轻易纳入麾下了。
很多网站是需要和用户实时互动的,建议不要盲目的静态化。这样反而对网站发展不利。
虽然我们说了这么多,但是很多站长还是认为静态页面有它自身的有点的,因此咱们还是去看下生产静态页面的方法吧。
第一种:写makefile()函数
<%
sub makefile()
fname= "xx.htm"'指定生成文件的名称,可自行设置为其他格式
filepath="..yy"'指定生成文件存放路径,可自行修改
content="..."'此处筛选数据库中的数据并构造字符串,请自行编写
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fout = fso.CreateTextFile(server.mappath(filePath& "" & fname))
fout.WriteLine content
fout.close
end sub
%>
最后,在需要的地方调用即可:
<%call makefile()%>
第二种:FSO
FSO,ado方式生成html。此类方法用的很多。比如www.56u88.com全站,除了统计,TAG系统是动态的外,其他全部生成了静态页面。
第三种:采用ISAPI_Rewrite组件重写
采用组件如ISAPI_Rewrite重写,有自己服务器的站长还好办,虚拟主机的朋友就稍麻烦,除非请求服务商安装这个插件,再将程序参数提交服务器实现转化,看上去是静态化了,实际上是用静态路径访问数据库的内容。对于搜索引擎收入有一定作用,而且许多站长正是为此为苦苦寻找。
第四种:asp路径伪静态化
Asp页面如果你想使它看上去静态化,又不是完全真正静态化,目的就是使它对搜索引擎更友好点。讨好一下,作为辛苦的站长们也不为过嘛。就可以使用本方法。如show.asp?id=1的路径可以转换为show/?1.html,show.asp?id=1&id2=2转换为show/?1-2.html等等。
举例说明:我们需要把“http://www.shanxitianhao.com/CShow.asp?ArticleID=372”的url形式转换为“http://www.shanxitianhao.com/ CShow.asp? 3-72.html”的样子。
方法:建立目录cshow,在cshow下放入一个系统默认的首页文件,如default.asp,在default.asp里写如下代码:
<%
dim id,id1,id2,a,b
id=Request.ServerVariables("QUERY_STRING")
id1=replace(id,".html","")
id2=split(id1,"-")
a=id2(0)
b=id2(1)
response.write "a参数值为:"&a&"<br>b参数值为:"&b
''到这里已经获取了show.asp文件需要的a、b参数了。
''下面利用该参数,和以前一样打开数据库,获取内容。
%>
原理很简单。就是利用Request.ServerVariables("QUERY_STRING")取得接收的值(?后的参数),比如http://www.shanxitianhao.com/ CShow.asp? 3-72.html接收的就是3-72.html,对372.html进行过滤,我们只需要取得参数3和27,根据3和27再去从数据库中检索数据,后面跟动态ASP一样的了。
第五种:制作静态生成器
制作说明
news/代表是你生成保存静态页的路径("new/"&id&".html",url)
id代表生成静态页的名字也就是这里("new/"&id&".html",url)
.html就是你要生成的文件格式("new/"&id&".html",url)
url代表你要生成静态页的页面路径("new/"&id&".html",url)
首先新建一个ASP VBScript页
把下面内容复制粘贴进去 - 保存html.asp
<%
Dim id
id = Request("id")
url = Request("url")
%>
<%
if SaveFile("new/"&id&".html",url) then
Response.write "已生成"
else
Response.write "没有生成"
end if
function SaveFile(LocalFileName,RemoteFileUrl)
Dim Ads, Retri, GetRemoteData
On Error Resume Next
Set Retri = Server.CreateObject("Microso" & "ft.XM" & "LHTTP") '//把单词拆开防止杀毒软件误杀
With Retri
.Open "Get", RemoteFileUrl, False, "", ""
.Send
GetRemoteData = .ResponseBody
End With
Set Retri = Nothing
Set Ads = Server.CreateObject("Ado" & "db.Str" & "eam") '//把单词拆开防止杀毒软件误杀
With Ads
.Type = 1
.Open
.Write GetRemoteData
.SaveToFile Server.MapPath(LocalFileName), 2
.Cancel()
.Close()
End With
Set Ads=nothing
if err <> 0 then
SaveFile = false
err.clear
else
SaveFile = true
end if
End function
%>
然后在新建一个页做上一个链接
请看链接样式<a href="html.asp?id=news&url=http://www.shanxitianhao.com" target="_blank">天昊药业</a>做好到和html.asp一个文件夹下即可