2017-02-01 57 views
0

我的.htaccess文件將我的頁面重定向到https連接,並在需要時進行一些更多的重定向。.htaccess由於頁面前加載而導致重定向破壞會話?

但是,我有一個腳本來檢查會話是否設置(PHP)。如果是這樣,我執行視覺操作並取消會話。但是,當.htaccess使用重定向時,我會看到毫秒級的視覺效果以及來自.htaccess的新重定向,效果消失了,因爲會話已經未設置...

我希望這是不夠清晰,退出一個奇怪的故事,但雅...現在看來要發生,直到:(

感謝所有幫助提前

PS結構簡單:

1)。加載頁面 - >做視覺和未設置的會話

2)。 .HTACCESS將重定向到https

3)。載入頁面 - >沒有視覺由於第一步已經取消設置會話

+1

htaccess的將被處理。如果htaccess重定向,則不會爲該請求加載php,瀏覽器將被重定向,然後爲重定向頁面提出新請求。 –

+0

另外,請記住對http和https的請求是完全獨立的請求,就像它們是完全不同的服務器一樣。如果您通過http創建了一個會話,則它將不可用於通過https運行的網站。通過http設置的會話cookie不會通過https傳遞,因此會話將不會恢復。 –

+0

喬納森,感謝您的快速回復。但是,我幾乎可以確定我的頁面在重定向之前被加載。我的.htaccess文件很好,因爲safari按預期工作。然而,這似乎是一個鉻和Firefox的錯誤,頁面加載之前重定向... –

回答

0

RewriteEngine On 
 
RewriteCond %{SERVER_PORT} 80 
 
RewriteRule ^(.*)$ https://yourdomain.com/$1 [R=301,L]

使用這個例子的,如果你想重定向非SSL然後刪除您的htaccess 結束https://開頭,並把HTTP://

如果你想使用的子文件夾

重定向使用下面的代碼

之前PHP甚至被稱爲在所有個

RewriteEngine On 
 
RewriteCond %{SERVER_PORT} 80 
 
RewriteCond %{REQUEST_URI} subfoldername 
 
RewriteRule ^(.*)$ https://yourdomain.com/subfoldername$1 [R=301,L]

+1

謝謝,但這對於所問的問題根本沒有答案。我的.htaccess文件在safari上工作正常,這就是爲什麼我不懷疑我的.htaccess文件。除此之外,我做了更多的.htaccess文件,所以我知道他們必須設置重定向https等感謝您的答覆,雖然 –