php代码判断用户访问的当前协议是否为https
public function isHttps()
{
if ( ! empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
return TRUE;
} else if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
return TRUE;
} else if ( ! empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
return TRUE;
} return FALSE;
}
如果系统是通过nginx proxy_pass访问过来的,那么以上判断要想生效,得需要前端的nginx把用户的访问协议传给后端应用
# nginx 部分配置参考
server {
server_name www.zhangblog.com;
listen 443;
index index.jsp;
ssl on;
ssl_certificate /mnt/releaseCert/serverbundle.crt;
ssl_certificate_key /mnt/releaseCert/serverbundle.key; if ($request_uri ~* "\.html$"){
rewrite ^/(.*)$ http://$host/$1 redirect;
} location / {
proxy_pass http://10.171.27.25:9002; # 内网IP
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server{
server_name www.zhangblog.com;
listen 80;
index index.jsp; if ($request_uri ~* "/pmcs/$"){
rewrite ^/(.*)$ https://$host/$1 redirect;
}
if ($request_uri ~* "/pmcs/login.jsp$"){
rewrite ^/(.*)$ https://$host/$1 redirect;
} location / {
proxy_pass http://10.171.27.25:9002;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
php代码判断用户访问的当前协议是否为https的更多相关文章
- 判断用户访问方式为pc or Phone
<scripttype="text/javascript"> (function () { var sUserAgent= navigator.userAgent.to ...
- php判断用户设备类型
最近做的一个需求里面希望能判断用户访问页面的设备类型,根据不同的类型去加载不同的数据和页面样式.由于技术栈是使用的php,于是考虑在php层面去做这个判断. 假设主要判断的设备有平板和手机为主,分两个 ...
- JavaScript判断用户是通过电脑端还是移动端访问
每个浏览器对应的useragent不同,JavaScript通过判断useragent的类型,便可以判断出用户所使用的浏览器类型,包括 IE.Firefox.chrome等.还可以判断用户是否通过移动 ...
- MVC项目中如何判断用户是在用什么设备进行访问
使用UAParser在C#MVC项目中如何判断用户是在用什么设备进行访问(手机,平板还是普通的电脑) 现在我们开发的很多web应用都要支持手机等移动设备.为了让手机用户能有更加好的用户体验,我们经常为 ...
- php 用户访问菜单页面,必须登录,判断用户是否登录
<pre name="code" class="python"># 本节课大纲: 一.空模块和空操作 1.空操作 function _empty($ ...
- js如何判断用户是在pc端和还是移动端访问
js如何判断用户是在pc端和还是移动端访问 来源:A5技术交流 作者:wofa 时间:2014-04-25收藏本页 最近一直在忙我们团队的项目“咖啡之翼”,在这个项目中,我们为移动平台提供了一个优秀的 ...
- C#判断用户是手机访问还是PC访问
今天在做一个wap网站时,需要限制PC用户访问.网上找了很多资料,效果都不怎么理想.其实原理就是根据HTTP_USER_AGENT判断检查用户在用什么浏览器,再根据业务做相应的逻辑处理. 代码如下: ...
- js判断用户是在PC端或移动端访问
js如何判断用户是在PC端和还是移动端访问. 最近一直在忙我们团队的项目“咖啡之翼”,在这个项目中,我们为移动平台提供了一个优秀的体验.伴随Android平台的红火发展.不仅带动国内智能手机行业,而 ...
- 使用UAParser在C#MVC项目中如何判断用户是在用什么设备进行访问(手机,平板还是普通的电脑)
现在我们开发的很多web应用都要支持手机等移动设备.为了让手机用户能有更加好的用户体验,我们经常为手机设备专门准备一套前端的页面.这样当用户使用普通电脑来访问的时候,我们的应用就向用户展示普通电脑的页 ...
随机推荐
- metal cmd执行时间
https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/MTLBestPracticesGuide ...
- Java数据库小项目00---基础知识
目录 JDBC的简单使用 向JDBC注入攻击 防止注入攻击 自建JDBC工具类 自建工具类优化--使用配置文件 使用数据库连接池优化工具类 JDBC的简单使用 package Test; import ...
- Monkey实战测试步骤
1,adb devices 确保设备在线 2,adb shell pm list packages 查看包名 3,adb shell monkey -p com.xzck.wangcai --ig ...
- Maven手动将jar导入本地仓库
1.使用cmd进入maven安装目录下的bin 2.运行mvn install:install-file -Dfile=jar包的路径 -DgroupId=gruopId中的内容 -Dartifact ...
- 多线程 submit与execute区别
(1)可以接受的任务类型 submit: execute: 可以看出: execute只能接受Runnable类型的任务 submit不管是Runnable还是Callable类型的任务都可以接受,但 ...
- SQL Server Dead Lock Log
1 . 模拟Dead Lock Session1: begintran insertintoT1(name)values('test1') UpdateT2setname='test1' commit ...
- TTTTTTTTTTTTTTTTT Gym 100851J Jump 构造
题意:首先你输入一个数字n(偶数)(n<=1000),电脑则自动生成一个长度为n的01字符串,你每次可以构造出一个长度为n的01字符串,输入给电脑后电脑进行判定,如果你的字符串与电脑的字符串完全 ...
- AGC029C - Lexicographic constraints
记录我心路历程吧,这道小水题暴露出我很多问题. 给定 \(n\) 个字符串长度 \(a_i\) ,求字符集最小多大,才能构造出按字典序比较 \(s_1 < s_2 < \dots < ...
- javascript中的BOM
浏览器对象模型BOM,提供了访问浏览器的接口.这些功能大多和网页内容无关,多年来,由于缺乏规范导致BOM中的不同方法在不同浏览器中的实现有所差异,直到html5,才将BOM的主要方面纳入规范. BOM ...
- JAVA之自动内存管理机制
一.内存分配 1.JVM体系结构 2.运行时数据区域 3.内存分配二.内存回收 1.垃圾收集算法 2.垃圾收集器三.相关参考一.内存分配JVM体系结构 在了解自动内存管理的内存分配之前,我们先看下JV ...