2017-08-04 35 views
0

我想301重定向来自先前站点的嵌套URL,因为pencilblue不支持它们,如何重定向在pencilblue嵌套网站的网址?

例如, A/B页/ B

为此,我已经在在尝试包括/ HTTP/request_handler.js,但遇到了一些问题。

呼叫从来不会出现内部RequestHandler.prototype.handleRequest甚至RequestHandler.prototype.onSessionRetrieved(似乎这些方法都没有从任何地方调用)

所以我把代码RequestHandler并确认后, REQ不是公共资源或API,我创建了一个新的URL,并执行

return this.doRedirect(newUrl, 301)

这实际上工作,但同时我REC他们被送到错误

#1075后并没有帮助我很多,因为我不知道哪个特定的控制器我应该修改eive

无法呈现头。我需要尽早捕捉请求,看看它是否是一个页面,然后重定向到页面前缀的url。

在此先感谢。

回答

0

有几种方法可以做重定向。你可以从控制器中间件。你是正确的,在请求处理程序中的一些功能没有被调用。尽管pencilblue团队没有将它们标记出来,但这些已被弃用。他们用/include/http/router.jsinclude/http/middleware/index.js取代了大量的请求处理程序功能。插件可以注册他们自己的中间件来劫持请求管道。

有关创建自己的中间件的更多信息,请参阅wiki上的Advanced Routing

使用路由框架,您的插件将能够注册能够检查请求并根据您的特定条件重定向的中间件。路由器可以从req.router访问,从那里你可以调用req.router.redirect(Source)。

参考:#1224

+0

感谢它的工作。 – Touqeer