我已经使用here描述的技术实现了动态生成的站点地图。
由于我的网站是WebForms应用,因此我的站点地图网址最终为www.mydomain.com/Sitemap.aspx。
效果很好,我可以使用搜索引擎网站管理员工具告诉他们我的站点地图的网址。但是,较小的搜索引擎可能不知道在哪里可以找到此文件。如果我动态生成的站点地图可以在www.mydomain.com/sitemap.xml上,那会更好。这是站点地图的标准网址。
现在生成相同站点地图数据的最简单方法是什么,但将其显示为文件sitemap.xml。我可以使用路由来完成,还是需要自定义HTTP处理程序?
我正在使用webforms,但也有使用ASP.NET MVC的网站,所以我非常有兴趣在两个平台上找到最好的技术。
答案 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>