如何让Umbraco处理非.aspx文件的请求(IIS集成管道模式)?

我正在尝试为Umbraco获取301 URL跟踪器包以适应我的喜好。 我的目标是能够将旧URL(从另一个CMS)映射到新的Umbraco URL。在我的特定情况下,旧网站是基于PHP的,因此使用.php文件扩展名(http://example.net/test.php - > http://example.net/test/) - 但它可以是任何非.aspx扩展名(asp,png等)。问题是Umbraco没有处理.php文件的请求。它适用于.aspx和目录(无扩展名的URL)。 为了让这个工作,我尝试了各种各样的东西。在进一步讨论之前,我应该注意应用程序池处于集成模式和.NET 4.0。 我通过在web.config中定义自定义错误来实现它:
<customErrors defaultRedirect="not-exists.aspx" />
这会触发Umbraco配置文件404handlers.config中NotFoundHandlers中定义的处理程序。但是在301 URL跟踪器启动并处理301重定向之前,返回302 Found标头会产生副作用。这只是一个很大的SEO“不,不”。 然后我尝试为.php文件显式创建HTTP处理程序模块。我成功地获得了System.Web.UI.PageHandlerFactory模块来处理.php文件的请求。但是这不会调用Umbraco中的任何NotFoundHandler。 据我了解IIS 7中的集成管道,所有注册的模块都应该尝试处理请求(http://stackoverflow.com/questions/3765317/how-to-catch-non-aspx-files-with-a-http -module)。但也许有人可以在这个问题上启发我? 其他人也遇到了使这种配置起作用的困难:http://our.umbraco.org/projects/developer-tools/301-moved-permanently/feedback/7271-when-the-old-pages-are-not - 从-一把umbraco 让Umbraco在集成管道模式下处理非.aspx文件请求时我缺少什么?     
已邀请:
如果您已在Integrated Pipeline模式下运行,则随附的UrlRewriting.net模块应自动获取请求。 只需添加:
<add name="phptoaspx"
     virtualUrl="^~/(.*).php"
     rewriteUrlParameter="ExcludeFromClientQueryString"
     destinationUrl="/$1.aspx"
     ignoreCase="true" />
到你的/config/UrlRewriting.config文件,一切都应该没问题。 附:您不应该使用customError处理程序来处理SEO 301/302'的内容。就可维护性而言,这可能是一个巨大的麻烦 - 请相信我,我曾经尝试过一次,当时我是一名初级.NET开发人员!     
我不熟悉Umbraco,但相信这就是你要找的东西http://blogs.iis.net/ruslany/archive/2008/09/30/wildcard-script-mapping-and-iis-7-integrated- pipeline.aspx 当然,你必须添加自己的重写规则......所以这只会让你走到一半。     

要回复问题请先登录注册