首页 开发编程 正文

php怎么做301 php如何用HSTS实现http跳转https

现在大多少浏览器都要使用https加密,很多站点都使用了http强制跳转https的方法,这种方法有效的解决了http网站在部署了SSL证书后,输入域名直接跳转到https的问题,作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。主要目的是为了解决HTTPS网站首次请求时使用的是未加密的HTTP协议。...

php怎么做301,如何用HSTS实现http跳转https?

我们知道,现在大多少浏览器都要使用https加密,对于这种情况,很多站点都使用了http强制跳转https的方法,这种方法有效的解决了http网站在部署了SSL证书后,输入域名直接跳转到https的问题,但同样也有被域名劫持的风险,因为用户首次访问站点的时候其实也是用的是http请求,之后被重定向到了https,如何解决这个问题呢?这里我们要借助一个新的安全协议:HSTS,教你如何用HSTS实现http跳转https。

什么是HSTS

HSTS(HTTP Strict Transport Security)国际互联网工程组织IETE正在推行一种新的Web安全协议,作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。

主要目的是为了解决HTTPS网站首次请求时使用的是未加密的HTTP协议,也就说用户一般访问我们的网站都是直接在浏览器输入域名,比如morong.me,然后我们的服务器检测到是HTTP请求,就301跳转到HTTPS页面。那么前半程采用的就是未加密的HTTP请求,同样存在被劫持的可能,那么HTTPS说好的安全性也就大打折扣了!

开启HSTS

开启HSTS很简单,只要在我们网站的响应头里面新增HSTS即可,下面简单说下

1、Nginx服务器

找到nginx.conf配置文件,在网站的server配置代码里面加入如下代码:

server {

listen xx.xx.xx.xx:443 ssl spdy;

server_name www.gworg.com;

add_header Strict-Transport-Security "max-age=31536000;includeSubdomains"#加入此行代码

…… }

2、Apache服务器

LoadModule headers_module modules/mod_headers.so

<VirtualHost 0.0.0.0:443>

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

</VirtualHost>

3、Lighttpd

server.modules += ( "mod_setenv" )

$HTTP["scheme"] == "https" { setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload") }

4、通用方法

如果你用的虚拟主机,或者不会折腾WEB软件,那么可以采用更简单的通用方法。原理很简单,通过代码来新增响应头即可,这里只分享一下php的做法,其他语言自行参考:

将如下代码插入到网站根目录的index.php即可:

header("Strict-Transport-Security: max-age=63072000; includeSubdomains; preload");

篇尾语:HSTS有利有弊,启用了的网站如果后期想http访问需要一段时间才可以恢复,另外目前不是所有的浏览器都支持HSTS,所以对于想使用这种方法强制跳转https的用户可以综合考虑下。

以上,是为大家分享的“教你如何用HSTS实现http跳转https”的全部内容,如果用户遇到的问题不能解决,可通过wosign官网客服寻求帮助,凡是选择wosign ssl证书的网站用户,wosign可提供免费一对一的ssl证书技术部署支持,免除后顾之忧。

php如何实现302跳转?

302是临时重定向的意思。表示被访问页面因为各种需要被临时跳转到其他页面。

PHP里的302重定向非常简单,只要在返回的HTTP Response header里添加Location字段,PHP将自动返回302状态码。

例如:

<?php

header("Location: URL地址");

?>

这段代码将自动重定向到URL地址

注意的是,跳转不是在收到response header的时候马上进行,也就是说页面的剩余内容会被下载来之后浏览器才会跳转。新手常犯的一个错误是,在逻辑判断时对符合条件的情况进行header跳转之后,忘了在之后加上exit(),导致错误。例如,用user_login()判断用户是否进行了登录,如果未登录则跳转到登录页面。代码如下:

<?php

if(!user_login()){

header("Location:login.php");

}

//display contents for login users.

?>

这里,容易以为header之后这段代码就结束了,没有在header之后使用exit()。后面的代码继续被执行,导致未登录用户看到了已登录用户才能看到的内容。

手机上网一直显示404NotFound怎么办?

1、由于网页内容路径改变而导致404 not found时,我们可在IIS 中定义404错误指向一个动态页面,在页面里面使用301重定向跳转到新的地址,此时服务器返回301状态码;

2、设计一个html文件,将404 指向该html 文件,此时页面将返回404状态码:打开IIS管理器-->点击要设置自定义404的网站的属性-->点击自定义错误选项-->选中404页-->选中并打开编辑属性-->设置成 URL --> URL 里填写“/err404.html”-->按确定退出再把做好的err404.html 页面上传到网站根目录下。此处在“消息类型”中一定要选择“文件”或“默认值”,而不要选择“URL”,不然,将导致返回“200”状态码;

3、将404指向一个动态页面:比如error.asp,如果不在页面里面进行设置,仅仅是返回提示的HTML 代码,将导致页面返回200 状态码,这是不正确的,我们可以在显示完提示内容后,增加语句: Response.Status="404 Not Found" ,这样保证页面返回404状态码;4、Apache下设置404错误页面:为Apache Server设置404错误页面的方法很简单,只需在.htaccess 文件中加入如下内容即可,ErrorDocument 404 /notfound.php。

php上手需要多久?

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

PHP多久能学会?

PHP几乎是入门最简单的一种流行语言了,熟悉语法、常用的函数就可以做些简单的web开发。php基础知识需要学习 1~4 个月才能做到熟练掌握,但想要精通,至少要花一年时间才可以。

PHP包含的东西也很多,如果简单点,一个小留言板大概学了2个月就差不多了,但是PHP当中还有很多别的比如面向对象、GD库、cookie、session……。想要做个真正像样的网站,CSS、JS、SQL也是必不可少(ajax无非就是js+css做前台,php、asp或jsp做后台)。如果这些都要学会,至少要一年时间。

学PHP如果只是想学到可以看懂并修改像PHPWind、Discuz、WordPress等流行的应用代码的话,大概学3、4个月就差不多。

PHP源码如何修改?

PHP源码用记事本就可打开编辑了,当然用DW也可以。图片背景要改,可要看清图片的链接(或者直接将图片改成你要的图片也可),改文字格式要通过CSS来修改,链接的话,应该在网站后台就能修改。不过,这样改太累了点!而且PHP的网页无法直接在IE中预览。

建议你下载一个DEDECMS的企业版,然后把相关的图片(如Logo.gif)改成自己的,网站的频道(栏目)、链接都可以在安装后改。

本文转载自互联网,如有侵权,联系删除