0
我的網站使用外部認證服務,該服務將用戶引導離開所需的頁面,執行登錄,然後重定向回去。.htaccess用於https服務器端口的mod_rewrite正則表達式
問題是,當用戶從https頁面重定向時,身份驗證服務(我無法修改)愚蠢地重定向回http://並在URL末尾附加了一個:443,這隻會引發來自Apache的錯誤。
我已經有一個htaccess指令,以確保用戶總是觀看在HTTPS當前頁面:
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
我正在尋找的是一個重寫規則,將檢測URL以http,並以443結尾,然後讓它重定向到https://而不添加端口。
我試過這樣:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
但這似乎沒有工作。
不幸的是,這是行不通的。如果我刷新了錯誤的頁面,它不會重定向。我認爲,鑑定腳本正在重定向到端口443上的特定URL,因此沒有被捕獲。 – monkeymatrix
,但即使使用443,它仍然是http,並且'RewriteCond%{HTTPS} off'將返回true。嘗試在另一個瀏覽器中測試或清除緩存。 – anubhava
即使在全新的瀏覽器上,Nope仍然不起作用。 – monkeymatrix