我的托管公司昨天给我发了电子邮件,告诉我他们正在升级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();
}
好吧,
我设法解决了所有这些问题...
我完全删除了上面的代码并在 .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!以下内容帮助我解决了这个问题。
收到的 HTTP 方法无效。仅接受开机自检
请注意,我的托管服务提供商在他们的升级指南/文档中没有涵盖这一点!我将在1and1与我的好朋友沟通!