如何强制使用SSL/https.htaccess和mod_重写特定于PHP的页面.

推荐答案

对于Apache,可以使用mod_ssl来强制SSLRequireSSL Directive使用SSL:

此指令禁止访问,除非为当前连接启用了HTTP over SSL(即HTTPS).这在启用SSL的虚拟主机或目录中非常方便,可以防御expose 应该保护的内容的配置错误.如果存在此指令,则拒绝所有未使用SSL的请求.

但这不会重定向到https.若要重定向,请try 以下选项,并在您的列表中输入mod_rewrite.htaccess文件

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

或者在

如果您的提供者已禁用,您也可以从PHP中解决这个问题.htaccess(这是不可能的,因为你要求它,但无论如何)

if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
    if(!headers_sent()) {
        header("Status: 301 Moved Permanently");
        header(sprintf(
            'Location: https://%s%s',
            $_SERVER['HTTP_HOST'],
            $_SERVER['REQUEST_URI']
        ));
        exit();
    }
}

Php相关问答推荐

为什么PHP输出\n而不是实际创建一个新元素?

输入手写CSV时在PHP中进行日期判断

在PHP中替换数组中的文本并同时使用其他函数

PHP DOMDocument忽略第一个表S结束标记

管理员订单列表中的自定义列与WooCommerce 8.6.1一起消失

Laravel;Composer安装突然返回选项快捷方式不能为空.

PHP原始数据读取引发max_input_vars错误

在PHP中使用curl命令执行SCRAPYD操作.json不返回任何内容

PHP-准备用于TCP套接字的数据包

在PHP中处理Linux输入事件(/dev/input/Event*)

在php中,方法之间的属性链接是如何工作的

将自定义字段添加到管理产品 在 WooCommerce 3.2+ 中批量编辑

在 PHP MySQL 中自动生成账单编号

服务器升级到新的mysql版本8.0.34后查询错误

在 php 中生成 MAC ISO/IEC 9797-1

使用 Laravel 和 Vue 进行图像表单验证

计算数组中连续值的数量

根据WooCommerce中选定的变体重量更改输入数量步值

来自 GoDaddy 的邮箱在 Gmail 中显示为via

在 GA4 Data API V1 Beta 中使用 inListFilter 过滤器时出错