0

我的托管公司昨天给我发电子邮件告诉我他们正在升级 Apache...所以今天早上我发现我的网站关闭并且无法正常工作。

问题是浏览器给了我“这个网页有一个重定向循环”错误。托管公司不想提供帮助,但是经过一番调查后,我找到了破坏网站的代码。

我需要强制使用 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 回答