header()リダイレクトのターゲットが、どのページがリダイレクトを開始したかを判別できる方法を見つける必要があります。ログインを検証するためにmod_auth_casハックを使用しています。mod_auth_casの背後にサイト全体を配置することはできないため、.htaccessにAuthTypeCasを含むサブディレクトリがあります。ログインの場合、/ casディレクトリへのリンクを指定し、casを処理し、返されたユーザーIDを$ _SESSIONに追加して、アクセス許可データベースと比較します。その後、ページはヘッダーでホームページにリダイレクトされます。
このダンスは、ホームページに戻るだけでうまく機能しますが、$ _ SESSIONにユーザーIDがない場合に、ログインが必要なページでcasにリダイレクトする必要があります。また、ユーザーがログインしてユーザーIDを取得すると、ホームページではなく、そこに送信したページにリダイレクトされます。また、ヘッダーリダイレクトの元のページを振り返るこの機能は、サイトの他の部分で便利です。
/cas/index.phpは、どのページがリダイレクトを開始したかをどのように判断できますか?ユーザーが複数のページを開いていると同時に、1つのページのcasにリダイレクトされ、2番目のページに移動してcasにリダイレクトされ、casが最初のページに戻って完了するという衝突を回避するにはどうすればよいですか?もう一度、最初のページではなく2番目のページにリダイレクトされますか?そして、このソリューションは純粋なPHPである必要があり、JavaScriptの追跡は必要ありません。