如何让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文件请求时我缺少什么?
没有找到相关结果
已邀请:
2 个回复
诉嘎归亮
到你的/config/UrlRewriting.config文件,一切都应该没问题。 附:您不应该使用customError处理程序来处理SEO 301/302'的内容。就可维护性而言,这可能是一个巨大的麻烦 - 请相信我,我曾经尝试过一次,当时我是一名初级.NET开发人员!
凸晴