动态生成sitemap.xml

时间:2012-04-21 19:23:24

标签: asp.net-mvc webforms sitemap

我已经使用here描述的技术实现了动态生成的站点地图。

由于我的网站是WebForms应用,因此我的站点地图网址最终为www.mydomain.com/Sitemap.aspx。

效果很好,我可以使用搜索引擎网站管理员工具告诉他们我的站点地图的网址。但是,较小的搜索引擎可能不知道在哪里可以找到此文件。如果我动态生成的站点地图可以在www.mydomain.com/sitemap.xml上,那会更好。这是站点地图的标准网址。

现在生成相同站点地图数据的最简单方法是什么,但将其显示为文件sitemap.xml。我可以使用路由来完成,还是需要自定义HTTP处理程序?

我正在使用webforms,但也有使用ASP.NET MVC的网站,所以我非常有兴趣在两个平台上找到最好的技术。

2 个答案:

答案 0 :(得分:9)

对于Webforms,您可以使用HttpModule,查看UrlRewriting.NET

对于MVC,请使用路由:

routes.MapRoute("Sitemap", 
                "sitemap.xml",
                new { controller = "Home", action = "Sitemap" })

答案 1 :(得分:2)

对于Webforms,你也可以像上面提到的那样更新你的web.config,你只需使用普通的aspx或ascx页面,然后用重写做魔术:-)(我使用.net 4.0)

e.g。

<system.webServer>
<rewrite>
  <rules>
    <rule name="Main Sitemap" stopProcessing="true">
      <match url="^sitemap.xml"/>
      <action type="Rewrite" url="sitemap/sitemap.aspx" appendQueryString="false"/>
    </rule>
  </rules>
</rewrite>
</system.webServer>