私の Web サイトは外部認証サービスを使用しています。このサービスは、ユーザーを目的のページから遠ざけ、ログインを実行してからリダイレクトします。
問題は、ユーザーが https ページからリダイレクトされると、認証サービス (私は変更できません) が愚かにも http:// にリダイレクトし、URL の末尾に :443 が追加され、Apache からエラーがスローされることです。
ユーザーが常に https で現在のページを表示していることを確認するための htaccess ディレクティブが既にあります。
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
私が探しているのは、http で始まり :443 で終わる URL を検出し、ポートを追加せずに https:// にリダイレクトする書き換えルールです。
私はこれを試しました:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
しかし、それはうまくいかないようです。