0

sslを使用してセキュリティで保護されたサイトがあります。ログインをチェックするphpファイルがあります。ログインしていない場合はログインフォームが表示されます。ページにログインすると、更新されてログインが再度チェックされ、ログインに合格するとページのコンテンツが読み込まれます。私がやろうとしているのは、httpsでログインをロードすることです。その後、JavaScriptがajaxからログインが成功したことを確認すると、ページはhttpだけでリロードされ、ページのロード時間とレイテンシーが削減されます(これらは大きいです)ページと小さなことは役に立ちます)。これを動的に行う必要があるため、リダイレクトURLを指定することはできません。

4

2 に答える 2

1

この問題を解決するには、ログインが必要なすべてのページの上部にロードされているこのテストされていない疑似コードを使用できます。

if(loggedin()&&$_SERVER[SERVER_PORT]==443)
{ 
   //if user is logged in but they are still on the https site, redirect to the http site
    header("Location:http://$_SERVER[HTTP_HOST]$_SERVER[SCRIPT_NAME]?$_SERVER[QUERY_STRING]");
}
elseif(!loggedin()&&$_SERVER[SERVER_PORT]!=443)
{
    //if the user is not logged in and they are not on the secure site,  send them to the login page on the secure site
    header("Location:https://$_SERVER[HTTP_HOST]/login.php");
}
于 2012-06-03T04:29:43.563 に答える
0

これを行うには、.htaccessの使用が推奨される方法です。単一のページまたは特定のページにのみhttpsを使用するには、.htaccessを使用します。

詳細については、こちらを確認して くださいhttp://www.sitepoint.com/forums/showthread.php?694107-htaccess-rule-redirect-https-for-just-one-page

.htaccessのある特定のページでのみHTTPS

于 2012-06-03T05:06:52.493 に答える