2013-02-07 169 views

回答

0

你可以寫在你的Web服務器重定向規則。下面的示例代碼在Apache中的httpd.conf文件,

創建cookie(可以說yourCookie)只要你登錄。

RewriteEngine On 
RewriteCond %{HTTP:Cookie} yourCookie=([a-zA-Z0-9]+) 
RewriteCond %{REQUEST_URI} ^/web/portal/home/-/portal/login/  //This is your login page URL 
RewriteRule .* http://%{SERVER_NAME}/web/portal/home [R=302]  //This is your Home Page URL 
+0

感謝@Vikas VI會嘗試,並讓我知道有沒有其他方式,如果我不想使用cookie? – dhruv

1

據我知道你想,即使登錄後,如果您輸入以下登錄網址:

http://localhost:8080/web/guest/home?p_p_id=58&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&saveLastPath=0&_58_struts_action=%2Flogin%2Flogin 

,那麼你應該考慮到主頁即到http://localhost:8080/web/guest/home

所以,如果是這樣的話,那麼我想你可以創建一個servlet-filter hook這將攔截所有的請求,並檢查作爲struts_action=/login/login的URL等的相關參數,並執行以下(在僞代碼):

if(is_SignIn_URL) { // check if it is the sign-in URL 

    if(isUserLoggedIn) { // check if user is logged-in 

     // redirect to the home page configured in portal-ext.properties 

    } else { 

     // let the application work normally i.e. let it go to the sign-in page 

    } 
} 

也爲信息和深入的瞭解,您可以檢查lifeary的AutoLoginFilter類(這是一個實際的Servlet過濾器,但你可以沿着相同的路線鉤子)的URL c/portal/login這需要你到home頁面如果和liferay-web.xml用戶已登錄,或將您帶到登錄頁面。

這是獨立使用一個Cookie :-)

+0

感謝@Prakash KI試圖過濾器,但我的問題1)看來的doFilter函數被調用時EXH一個新的URL hit.But當我登錄,然後按後退按鈕後,它不列入似乎是called.Is有什麼具體原因爲了那個原因? – dhruv

+0

我忘了提我使用我的自定義portet是在http://本地主機:8080。所以,當用戶logedin和他打回或手工輸入的http://本地主機:8080他應該重定向到http://本地主機:8080 /網絡/測試/家。 – dhruv

+0

@ user2051495您可以指示瀏覽器不要緩存。請參閱此[http://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-browsers](post)。但它會影響你的頁面加載性能!此外,用戶還可以點擊網站上「任何」頁面上的「返回」按鈕。所以,你最終會清除緩存在很多頁面。這將會是一個性能瓶頸 –

相關問題