我已经高低搜索了这个问题,所以非常感谢任何帮助。
我有一个带有apache的Linux服务器,我试图了解哪些特定方法可用于接受HTTP请求并在同一服务器上转发或重定向到HTTPS。
我还需要知道为什么一种方法可能比另一种方法更好,为什么你会选择一种特定方法而不是另一种方法呢?这对我来说非常重要。
感谢您的帮助
答案 0 :(得分:0)
使用Apache + PHP,有几种不同的方式:服务器配置或PHP代码。在服务器配置中执行此类检查的好处是,它将在任何地方应用,或者仅在每个目录的基础上应用,而无需在该文件夹或站点中的每个页面上更改PHP。服务器配置还提供更快的运行时间。
服务器配置
使用mod_rewrite,您可以将以下行添加到VHost配置文件中:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_NAME} (.*)
RewriteRule (.*) https://%1/$1 [R=301,L]
显然,必须在服务器上启用mod_rewrite才能使其正常工作。 Apache's mod_rewrite documentation有更多详情。
PHP代码
正如其他人所提到的,PHP提供了一个header
函数,可用于设置Location
HTTP响应头,并将客户端重定向到HTTPS。这不需要访问服务器配置或mod_rewrite。
答案 1 :(得分:-1)
好吧,假设您正在使用PHP,我的工作是:
header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], true, 301);
但还有很多其他方式,这取决于您当时的工作。我确信有人会有更好的答案。
祝你好运!