0

昨日、ホスティング会社からApacheをアップグレードしていることを知らせるメールが届きました。そのため、今朝、サイトがダウンしていて機能していないことがわかりました。

問題は、ブラウザが「このWebページにリダイレクトループがあります」というエラーを表示していたことでした。ホスティング会社は助けたくありませんが、調査の結果、サイトを破壊しているコードを見つけました。

SSL(https)とサイトのwwwサブドメインを強制する必要があります...これを行うために使用される次のコードが、今では頭痛の種になっています...私が試したすべてがうまくいかなかったので、誰かがこれを修正するのを手伝ってくれますか? ?次のコードはインクルードに入れられるため、サイトの各ページは強制的に(またはドメインでhttpsとwwwを使用するようにユーザーをリダイレクトします)。

//force the subdoman and https://...
if($_SERVER["HTTP_HOST"] != 'www.mysite.co.uk'){
    header('HTTP/1.1 301 Moved Permanently');
    $forceurl = isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : '';
    header('Location: https://www.mysite.co.uk' . $forceurl);
    die();
}


if ($_SERVER['HTTPS'] != 1){
    $newurl2 = "https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; 
    header("location: $newurl2");
    die();
}
4

1 に答える 1

3

さて、私はこれをすべて解決することができました...

上記のコードを完全に削除し、.htaccess内で次のように置き換えました...

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.myurl\.co\.uk [NC]
RewriteRule ^(.*)$ https://www.myurl.co.uk/$1 [R=301,L] 
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

次に、使用している支払いAPIの問題がサイトで機能していないことに気付きました。購入/支払いを行おうとすると、「受け取ったHTTPメソッドは無効です。POSTのみが受け入れられます」というメッセージが表示され続けました。POSTを使用していたので、これは奇妙でした。以下は私がその問題を解決するのに役立ちました。

受信したHTTPメソッドが無効です。POSTのみが受け入れられます

私のホスティングプロバイダーは、アップグレードガイド/ドキュメントでこれをカバーしていなかったことに注意してください!私はこれを1and1で私の良い友達に伝えます!

于 2012-06-24T14:01:15.917 に答える