如何使用 PHP 中特定的 .htaccess 和 mod_rewrite 页面强制使用 SSL/https。
对于 Apache,您可以使用mod_ssl强制使用 SSLSSLRequireSSL Directive:
除非为当前连接启用了基于 SSL 的 HTTP(即 HTTPS),否则该指令将禁止访问。这在启用 SSL 的虚拟主机或目录中非常方便,可以防止配置错误暴露应受保护的内容。当此指令存在时,所有不使用 SSL 的请求都会被拒绝。
但这不会重定向到 https。要重定向,请尝试以下操作mod_rewrite在你的 .htaccess 文件中
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
或任何各种方法中给出
- http://www.askapache.com/htaccess/http-https-rewriterule-redirect.html
如果您的提供商禁用了 .htaccess,您也可以在 PHP 中解决这个问题(这不太可能,因为您要求这样做,但无论如何)
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();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)