PHP https url forwarding


PHP https url forwarding

好的,所以我需要我的网站自动转发所有请求到服务器的http到https。我使用php没有真正的问题,但现在godaddy告诉我,我需要改变我这样做的方式。我的代码是正确的,我应该如何改变我这样做,什么方法是更好的?提前感谢您的帮助!

<?php
if ($_SERVER['SERVER_PORT']!=443)
{
$url = "https://". $_SERVER['SERVER_NAME'] . ":443".$_SERVER['REQUEST_URI'];
header("Location: $url");
}
?>

您不需要包含端口号…Https的默认端口已经是443。只有在其他端口上运行https服务时才需要显式端口号。还有,为什么要重复重定向?你有两个if()块做完全相同的事情。

但是,仅仅测试端口443是不够的。您可以在任何端口上运行所需的任何服务。HTTPS通常是443。但没有人说一定要这样。$_SERVER['HTTPS']明确告诉你是否使用了HTTPS

更好的方法是使用.htaccess和mod_rewrite进行重定向。

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

我将使用如下描述的内容:

输入链接描述

我不希望依赖端口443。有人可以将正常流量配置为443或使用另一个端口用于https(这两种情况都很少见)。

另外,由于它是默认的,您可以提交":443"…

你可以使用htaccess:

<>之前RewriteEngine上writecsecond %{SERVER_PORT} !443rewriterrule (.*) https://www.example.com/require-secure/[R]之前

希望有所帮助

我在我的。htaccess文件中使用这个代码,它工作得很好:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://example.ch/$1 [R,L]