网页同时含有安全性与非安全性的项目
当网页内包含HTTP及HTTPS的内容时,在IE下会出现弹出 "…网页同时含有安全性与非安全性的项目…"的警告讯息;在Firefox下,你将看到有下角的安全锁图标裂开了。这通常不是什么大问题。
如何你在浏览别人的网站,
- 在IE下你可以通过:
工具->选项->安全性->自订等级将『显示混合的内容』由"提示"修改为"启用"即可。 - 在Forefox下,你可以忽略那个裂开的安全锁。
如果你拥有这个网站,那么你应该考虑避免在安全页面包含非安全的元素,也就是在https页面里,把http://打头的href用https://或者相对路径代替。当然,前提是该元素可以通过https接入。
https是需要购买安全证书的,不是什么网站随随便便在前面加上https就可以访问,例如:https://www.61dh.com是不可以访问的,因为我没有买安全证书。另外SSL安全证书是和域名对应的,比如说我买了https://secure.61dh.com,它只对sercure.61dh.com生效,而https://www.61dh.com依然无法访问。
如果一个安全页面上含有非安全元素(通常是链接或者图片),并且这些链接不支持安全连接。那么应该怎么办呢?
这里要介绍两个可行解决方案。(注意:下面用到https://secure.61dh.com只是用来举例说明的,它并不存在。)
方法一:在服务器配置文件里加入安全到非安全的跳转
在Apache服务器下,当访问https://安全页面时通常要先到达ssl.conf,而访问不安全页面通常先到达http.conf。所以我们可以在ssl.conf里对某些url进行跳转。这种方法是用于同域名跳转,例如:
RewriteCond %{REQUEST_URI} !^/cart/checkout/.*$RewriteRule ^/(.*)$ http://%{HTTP_HOST}/$1 [R,L]
上述Rewrite Rule,可以实现 https://secure.61dh.com/cart/ 到http://www.61dh.com/cart 的跳转。
方法二:使用PHP跳转代码
当安全页面含有外部链接时,这个方法很适用。例如在https://secure.61dh.com页面里含有http://www.mysite.com的友情链接,我们可以把这个链接用安全链接来表示:
<a href="https://secure.61dh.com/redirect.php?to=http%3a%2f%2fwww.mysite.com">彩票站</a>
注意:这里我用到redirect.php,这个文件支持安全链接,而非安全链接http://www.mysite.com被当成变量。redirect.php代码很简单,如下:
<?php$to = isset($_GET['to']) ? $_GET['to'] : '';if ($to){header("Location: $to") ;exit;}?>



0 条评论:
发表评论
指向此帖子的链接:
创建链接