4

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

由于我的站点是一个 WebForms 应用程序,因此我的站点地图 URL 最终为 www.mydomain.com/Sitemap.aspx。

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

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

我正在使用网络表单,但也有使用 ASP.NET MVC 的网站,所以我非常有兴趣找到在这两个平台上执行此操作的最佳技术。

4

2 回答 2

9

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

对于 MVC,使用路由:

routes.MapRoute("Sitemap", 
                "sitemap.xml",
                new { controller = "Home", action = "Sitemap" })
于 2012-04-21T19:37:36.177 回答
2

对于 Webforms,您还可以如上所述更新您的 web.config,您只需使用纯 aspx 或 ascx 页面,然后使用 rewrite 进行魔术:-)(我使用 .net 4.0)

例如

<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>
于 2012-10-30T12:36:59.343 回答