使用 /?sc_item={guid} URL 和错误 404



SC7.5上的一个快速问题 - 我们有一个大型旧系统,它将指示用户进入Sitecore内容。我们知道GUID,并希望通过URL www.mysite.com/?sc_item = {guid}

无缝地重定向用户

我们还希望能够检查内容是否仍然存在,如果没有产生错误404,这将使我们(和其他)通过404报告清理我们的链接。

根本没有解决方案?

您可能认为的一种方法是使用反向代理。您可以在IIS上安装应用程序请求路由模块。这将使您可以检查和重写传入的请求到ARR站点,并将其转发到一个或多个后端服务器。您还可以重写这些后端服务器的响应(调整页面上的相对链接,修复标题中的响应位置等)

我已经为拥有大型旧网站并且正在逐步将内容转换为Sitecore的客户实施了这样的解决方案。反向代理使我可以从最终用户掩盖它。URL与往常一样保持不变。

真正使这项技术强大的技术是您可以为ARR编写自己的重写提供商。这意味着在ARR的运行时,您可以执行任意代码,而不仅仅是依靠规则来实现所需的效果。我的重写提供商实际上与Sitecore进行了通信,以确定如何处理传入请求,然后相应地进行路由。

我写了一篇博客文章,该文章更明确地涵盖了这个想法:http://sitecoreblog.patrickperrone.com/2015/05/create-reate-reverse-reverse-proxy-proxy-controllled-by.html

您可以替换或添加另一个项目resolver。如果您需要有关如何实现它的帮助,请在web.config和Reflector中查找sitecore.pipelines.httprequest.itemresolver。

您基本上将从Querystring中获取GUID,通过ID获取项目,然后返回项目。否则,记录URL并返回null

最新更新