2011-06-27 18 views
1

これまでにこの問題を抱えていた人がいて、解決方法がわかっていないかと思いました。基本的に私はSSLで暗号化されたページと、暗号化できない/プラグインに依存しないページを持っているので、SSLがないページではヘッダを検出してHTTPバージョンにリダイレクトしますページ:Apache PHP 5 header()問題SSLドメイン

if($_SERVER["HTTPS"] == "on") 
{ 
    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: http://www.example.com"); 
    exit(); 
} 

しかし、PHPは私が同じドメインのセキュアなドメインから非セキュアなサイトへのリダイレクトをブロックしているようです!

もし私がhttps://www.example.com -> http://www.secondsite.comから行くとしたら、https://www.example.com -> http://www.example.comは私に暗号化されたサイトにとどまり、無限のリダイレクトを強制します。

任意のポインタ??

リック

+0

なぜドットの周りにスペースがありますか? –

+1

2つ以上のリンクを貼り付けるには評判が足りません! –

+1

あなたのApacheの設定は、安全なページにリダイレクトするように設定されていることがよくわかりました。 PHPリダイレクトをコメントアウトすると、あなたのブラウザに 'http:// www.example.com'をロードできますか? –

答えて

0

あなたは多分あなたのヘッダーが同じページ上に保つように、ケースであるかもしれない、すでに送信されていないことを確認してください可能性があります。 PHPのマニュアルからこれを参照してください:

function redirect($url, $debug=FALSE){ 

// If headers not sent yet... then do php redirect 
if (!headers_sent()) { 
    header('Location: '.$url); 
    exit; 
// if headers are already sent... do javascript redirect... if javascript is disabled, do html redirect. 
} else { 

    // Js redirect 
    echo '<script type="text/javascript">'; 
    echo "<!--"; 
    echo 'window.location.href="'. $url .'";'; 
    echo "//-->"; 
    echo '</script>'; 

    // HTML redirect if js disabled 
    echo '<noscript>'; 
    echo '<meta http-equiv="refresh" content="0;url='.$url.'" />'; 
    echo '</noscript>'; 
} 
}//==== End -- Redirect