2017-08-04 66 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