当前位置:Google推广 ->> SEO技术 ->> 文章

生成XML的Google SiteMap代码[ASP版本]

Server.ScriptTimeout=50000
' sitemap_gen.asp
' A simple script to automatically produce sitemaps for a webserver, in the Google Sitemap Protocol (GSP)
' by Francesco Passantino
' www.iteam5.net/francesco/sitemap
' v0.2 released 5 june 2005 (Listing a directory tree recursively improvement)
'
' BSD 2.0 license,
' http://www.opensource.org/licenses/bsd-license.php
' 收集整理:http://grank.org/

session("server")=http://www.Popdu.net      '你的域名
vDir = "/"      '制作SiteMap的目录,相对目录(相对于根目录而言)

set objfso = CreateObject("Scripting.FileSystemObject")
root = Server.MapPath(vDir)

'response.ContentType = "text/xml"
'response.write "<?xml version='1.0' encoding='UTF-8'?>"
'response.write "<urlset xmlns='http://www.google.com/schemas/sitemap/0.84'>"

str = "<?xml version='1.0' encoding='UTF-8'?>" & vbcrlf
str = str & "<urlset xmlns='http://www.google.com/schemas/sitemap/0.84'>" & vbcrlf

Set objFolder = objFSO.GetFolder(root)
'response.write getfilelink(objFolder.Path,objFolder.dateLastModified)
Set colFiles = objFolder.Files
For Each objFile In colFiles
    'response.write getfilelink(objFile.Path,objfile.dateLastModified)
    str = str & getfilelink(objFile.Path,objfile.dateLastModified) & vbcrlf
Next
ShowSubFolders(objFolder)

'response.write "</urlset>"
str = str & "</urlset>" & vbcrlf
set fso = nothing

Set objStream = Server.CreateObject("ADODB.Stream")
    With objStream
    '.Type = adTypeText
    '.Mode = adModeReadWrite
    .Open
    .Charset = "utf-8"
    .Position = objStream.Size
    .WriteText=str
    .SaveToFile server.mappath("/sitemap.xml"),2 '生成的XML文件名
    .Close
 vEnd With

Set objStream = Nothing
  If Not Err Then
    Response.Write("")
    Response.End
  End If

Sub ShowSubFolders(objFolder)
      Set colFolders = objFolder.SubFolders
      For Each objSubFolder In colFolders
        if folderpermission(objSubFolder.Path) then
            'response.write getfilelink(objSubFolder.Path,objSubFolder.dateLastModified)
            str = str & getfilelink(objSubFolder.Path,objSubFolder.dateLastModified) & vbcrlf
            Set colFiles = objSubFolder.Files
            For Each objFile In colFiles
              'response.write getfilelink(objFile.Path,objFile.dateLastModified)
              str = str & getfilelink(objFile.Path,objFile.dateLastModified) & vbcrlf
        Next
        ShowSubFolders(objSubFolder)
      end if
  Next
End Sub

Function getfilelink(file,datafile)
        file=replace(file,root,"")
        file=replace(file,"\","/")
        If FileExtensionIsBad(file) then Exit Function
        if month(datafile)<10 then filedatem="0"
        if day(datafile)<10 then filedated="0"
        filedate=year(datafile)&"-"&filedatem&month(datafile)&"-"&filedated&day(datafile)
        getfilelink = "<url><loc>"&server.htmlencode(session("server")&vDir&file)&"</loc>
<lastmod>"&filedate&"</lastmod><changefreq>daily</changefreq><priority>1.0
</priority></url>"
        Response.Flush
End Function

Function Folderpermission(pathName)

    '需要过滤的目录(不列在SiteMap里面)
    PathExclusion=Array("\temp","\_vti_cnf","_vti_pvt","_vti_log","cgi-bin","\admin","\edu")
    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
    'modify for your file extension (http://www.googleguide.com/file_type.html)
    Extensions = Array("png","gif","jpg","jpeg","zip","pdf","ps","html","htm","php","wk1","wk2","wk3",
"wk4","wk5","wki","wks","wku","lwp","mw","xls","ppt","doc","swf","wks","wps","wdb","wri","rtf","ans","txt")
'设置列表的文件名,扩展名不在其中的话SiteMap则不会收录该扩展名的文件

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
%>

文章来源:维博科技,如需转载,请注明出处!

 

Copyright© 2004-2007 维博科技 Google优化 版权所有