%
' asp-google-sitemaps.asp
' by David Yin
' http://seo.g2soft.net/online-tools/google_sitemaps_gen.php
' v0.1 08.30.06
'
' BSD 2.0 license,
' http://www.opensource.org/licenses/bsd-license.php
'修改下面的三个设置参数,网址,物理目录和虚拟目录
session("server")="http://www.yourdomain.net/"
vDir = "/"
phisicalDir="C:\Inetpub\wwwroot\"
'时区设置,这里设置本地时间同服务器时间的差值
utcOffset=1
set objfso = CreateObject("Scripting.FileSystemObject")
root = Server.MapPath(vDir)
response.ContentType = "text/xml"
response.write ""
response.write ""
response.write ""
Set objFolder = objFSO.GetFolder(root)
Set colFiles = objFolder.Files
For Each objFile In colFiles
response.write getfilelink(objFile.Path,objfile.dateLastModified)
Next
ShowSubFolders(objFolder)
response.write ""
set fso = nothing
Sub ShowSubFolders(objFolder)
Set colFolders = objFolder.SubFolders
For Each objSubFolder In colFolders
if folderpermission(objSubFolder.Path) then
response.write getfilelink(objSubFolder.Path,objSubFolder.dateLastModified)
Set colFiles = objSubFolder.Files
For Each objFile In colFiles
response.write getfilelink(objFile.Path,objFile.dateLastModified)
Next
ShowSubFolders(objSubFolder)
end if
Next
End Sub
Function getfilelink(file,data)
file=replace(file,phisicalDir,"")
file=replace(file,"\","/")
If FileExtensionIsBad(file) then Exit Function
If FileNameIsBad(file) then Exit Function
filelmdate=iso8601date(data,utcOffset)
getfilelink = ""&server.htmlencode(session("server")&file)&""&filelmdate&"1.0"
session("URLS")=session("URLS")+1
Response.Flush
End Function
Function Folderpermission(pathName)
'设置不想包括在sitemaps里的目录
PathExclusion=Array("\temp","\_vti_cnf","\_vti_pvt","\_vti_log","\cgi-bin")
Folderpermission =True
for each PathExcluded in PathExclusion
if instr(ucase(pathName),ucase(PathExcluded))>0 then
Folderpermission = False
exit for
end if
next
End Function
Function FileExtensionIsBad(sFileName)
Dim sFileExtension, bFileExtensionIsValid, sFileExt
'http://www.googleguide.com/file_type.html
Extensions = Array("png","gif","jpg","zip","pdf","ps","html","htm","asp","wk1","wk2","wk3","wk4","wk5","wki","wks","wku","lwp","mw","xls","ppt","doc","wks","wps","wdb","wri","rtf","ans","txt")
if len(trim(sFileName)) = 0 then
FileExtensionIsBad = true
Exit Function
end if
sFileExtension = right(sFileName, len(sFileName) - instrrev(sFileName, "."))
bFileExtensionIsValid = false 'assume extension is bad
for each sFileExt in extensions
if ucase(sFileExt) = ucase(sFileExtension) then
bFileExtensionIsValid = True
exit for
end if
next
FileExtensionIsBad = not bFileExtensionIsValid
End Function
Function FileNameIsBad(sFileName)
if len(trim(sFileName)) = 0 then
FileNameIsBad = true
Exit Function
end if
Filename = Array("/alive.asp","/404.asp","/500.asp","/sitemap_gen.asp")
FileNameNumber = ubound(Filename)
for i=0 to FileNameNumber
if Filename(i) = sFileName then
FileNameIsBad = True
end if
next
End Function
Function iso8601date(dLocal,utcOffset)
Dim d
' 根据时区设置来转换本地时间
d = DateAdd("H",-1 * utcOffset,dLocal)
' compose the date
iso8601date = Year(d) & "-" & Right("0" & Month(d),2) & "-" & Right("0" & Day(d),2) & "T" & _
Right("0" & Hour(d),2) & ":" & Right("0" & Minute(d),2) & ":" & Right("0" & Second(d),2) & "Z"
End Function
%>