这可能是一个愚蠢的新手问题,所以对此有所了解。
我的网站正在使用SSL证书。我还在每个网页中包含W3验证器链接,如下所示:
<a href="http://validator.w3.org/check?uri=referer"><img src="valid-xhtml1.png" alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>
(注意:复制在w3验证器图像上,因此SSL不会抱怨不安全的资源)。
当我这样做,并点击图片验证页面时,我从验证器收到此消息:
错误提到请求验证器不安全。所以我尝试更改<a>
标签的href以使用https作为验证器,但之后页面根本不加载(我猜因为验证器不使用SSL)。
有没有人知道解决这个问题的方法?我猜测没有办法按原样使用代码,但也许有办法将uri=referer
更新为uri=https://mysite.com/...
?有没有办法动态抓取当前页面的URL?
此外,仅供进一步参考,SSL是否只是阻止访问引用请求标头?
哦,我知道我可以使用http而不是https访问我的网站,验证工作正常。但我宁愿让它配置为与https一起使用。
答案 0 :(得分:2)
至于“验证图标”问题:
这通常会导致显示关于“不安全的项目”的消息(=混合的http + https内容)...这样的星座中没有正式支持验证图标...描述了部分解决方法here。
如果您想动态获取uri,我怀疑您必须使用JavaScript,然后在DOM中创建/添加<a>
...
至于SSL / Referer问题:
standard表示客户端(=浏览器)只有在目标是安全的情况下才应发送referer - 所以是的,在混合情况下,引用者不会被发送到非安全URL。
答案 1 :(得分:0)
好的,所以看起来没有办法只使用HTML来实现这一点。相反,我决定使用JavaScript来处理这个问题。
我从W3徽标周围删除了<a>
标记,并添加了onclick
JavaScript函数validatePage()
。所以这里基本上是一个XHTML Strict页面的模板,它仍然允许你包含验证图标。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Title of document</title>
<script type="text/javascript">
function validatePage() {
var validatorUrl = "http://validator.w3.org/check?uri=http" + (document.URL).substring(5);
window.open(validatorUrl);
}
</script>
</head>
<body>
<h1>Test Template Page</h1>
<p><img src="valid-xhtml1.png" alt="Valid XHTML 1.0 Strict" height="31" width="88" onclick="validatePage()" /></p>
</body>
</html>
注意validatorUrl
变量如何修剪&#34; https&#34;从URL,而是使用&#34; http&#34;。所以我只是绕过了使用HTTP referer标题。
希望这有助于其他人。