我四处寻找这个问题的良好答案,因此非常感谢您的帮助。
我有一个带有 apache 的 Linux 服务器,我试图了解可以使用哪些特定方法来接受 HTTP 请求并将其转发或重定向到同一服务器上的 HTTPS。
我还需要知道为什么一种方法可能比另一种更好,为什么你会选择一种特定方法而不是另一种?这对我来说非常重要。
感谢您的帮助
最佳答案
使用 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 响应 header ,并将客户端重定向到 HTTPS。这不需要访问服务器配置或 mod_rewrite。
关于linux - 将 HTTP 重定向到 HTTPS。最好的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23048742/