2012-12-13 88 views
1

這裏是用例來的一個是我想做的事:如何攔截錯誤請求並重定向到自定義頁面?

  1. 用戶點擊一個博客鏈接或直接粘貼在URL
  2. 的博客鏈接的博客門戶是社區(網站)的私人頁面。
  3. 由於用戶不是社區(網站)的成員,他將被帶到錯誤頁面。
  4. 他顯示了一個404頁面或一個無訪問錯誤頁面。
  5. 我的要求開始:現在,而不是顯示上述頁面或定製版本的上述頁面。
  6. 我想攔截404或其他此類請求的請求。
  7. 根據用戶的某些參數和初始請求參數重定向到門戶頁面(不是靜態錯誤頁面)。
  8. 在這種情況下,我希望用戶重定向到同一社區(站點)的任何公共頁面,並要求他加入或請求該社區(站點)的成員資格。

所以總之,我會想要一種方法來攔截生成錯誤的請求,然後重定向到我想要的地方。

這是在Liferay中提供嗎?如果沒有,我可以得到一些想法,我該如何實現這一目標?

環境:的Liferay 6.1 GA2

感謝您的寶貴時間。

+0

我已經在[liferay forum](http://www.liferay.com/community/forums//message_boards/message/18595033)上發佈了這個。 –

回答

1

另一種方法(以及我將404錯誤重定向到社區中特定頁面的方式)是用Hook覆蓋404.jsp。然後將您的自定義邏輯添加到重寫的JSP。

我假設類似的東西可以做無訪問。

+0

謝謝!您是說要直接修改'docroot/errors/404.jsp'中的原始404錯誤頁面? –

+1

我的意思是用一個鉤子來覆蓋404.jsp,併爲它添加邏輯,這是你的重定向(或任何你需要做的)。例如,我已將其重寫爲自動重定向到每個社區的自定義錯誤頁面,而不是共享404頁面。 – Jonny

3

添加一個JSP頁面來管理404錯誤,如描述here in that Liferay's forum post

在那個JSP中,您可以根據您可以使用例如themeDisplay對象從JSP內部訪問的任何參數(用戶,社區等)來放置自定義邏輯。

+0

謝謝!那麼我是不是把'/ errors/404-searchworkings.jsp'放在'EXT'或'plugin'中?其他錯誤呢?你可以在這方面提供更多的細節嗎? –

相關問題