php – 仅对登录页面使用https而不是整个网站
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 仅对登录页面使用https而不是整个网站,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1893字,纯文字阅读大概需要3分钟。
内容图文
我想打开我的网站的登录页面只有https,而不是comeplete网站.登录验证(成功)后,网站再次在http上运行.
目前我的主要登录页面是test_index.php,其中包括test_header.php
我在test_header.php上的基本代码是
if($_SERVER['SERVER_PORT'] != 443) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
}
但这使得完整的网站在https
我也读了here,它可以通过.htaccess,所以我从test_header.php删除上面的代码片段并在.htaccess文件中添加以下行
<IfModule mod_rewrite.c>
RewriteEngine on
# 301 redirect to domain to 'www.'
RewriteCond %{HTTP_HOST} ^testweb.com$[NC]
RewriteRule ^(.*)$http://www.testweb.com/$1 [R=301,L]
</IfModule>
<FilesMatch test_index.php>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</FilesMatch>
注意:testweb.com只是一个虚构的名称,而不是实际的网站
但仍然完整的网站运行https,请告诉我我在哪里做错了?
编辑
@webbiedave请检查我更新的代码,是正确的方法??
if ($_SERVER['REQUEST_URI'] == '/test_index.php') { // only check https on login
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
} else {
die("Sorry,Your website is not secure");
}
} elseif (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
// header("HTTP/1.1 301 Moved Permanently");
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
}
谢谢
解决方法:
不要检查端口号以验证https,因为https不是不可能 – 尽管非常不可能 – 在非标准端口上.而是,检查$_SERVER [‘HTTPS’]变量:
if ($_SERVER['REQUEST_URI'] == '/login.php') { // only check https on login
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
// do login stuff
} else {
// redirect to https or simply give an error
}
} elseif (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
// redirect to http
}
内容总结
以上是互联网集市为您收集整理的php – 仅对登录页面使用https而不是整个网站全部内容,希望文章能够帮你解决php – 仅对登录页面使用https而不是整个网站所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。