2011-08-20 7 views
4

これはダービー初心者の質問かもしれません。SSLとW3 XHTML Validator

私のウェブサイトは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> 

(注:SSLは、セキュアでないリソース文句ないようにW3バリデータの画像の上にコピーされました)。

私はこれを行うと、ページを検証するには画像をクリックして、私はバリからこのメッセージが表示されます。

enter image description here

エラーがunsecurelyバリデータを要求して言及しています。そこで、<a>タグのhrefをバリデーターにhttpsを使用するように変更しようとしましたが、ページが単にロードされません(バリデーターがSSLを使用しないためです)。

これを回避する方法を知っている人はいますか?私はコードをそのまま使用する方法はないと推測していますが、uri=refereruri=https://mysite.com/...に更新する方法がありますか?現在のページのURLを動的に取得する方法はありますか?

また、参考までに、SSLは単にリファラーリクエストヘッダーにアクセスできないようにしていますか?

ああ、私はhttpsの代わりにhttpを使って自分のウェブサイトに行くことができ、バリデーターは動作します。しかし、私はむしろhttpsで動作するように設定しておきたいと思います。

答えて

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変数トリム「https」のオフURLから、代わりに「HTTP」を使用しています。だから私はちょうどHTTP refererヘッダーを使用して回避しました。

これは他の人に役立つことを願っています。

+0

これは、現在のページを使用するのではなく、新しいウィンドウ/タブで検証結果を開きます。これは便利です。 –

2

「アイコンを検証」という質問については:通常、これは、「安全でない項目」(=混合のhttp + HTTPSコンテンツ)に関するメッセージを表示することにつながる
...検証のアイコンが正式な星座ではサポートされていません。一部の回避策についてはhereと記載されています。
:SSL /リファラーの質問については

あなたが動的にURIを取得したい場合、私はあなたがそのためにJavaScriptを使用する必要があり、その後<a>がDOMに追加/作成する疑いがある...

standardは、クライアント(=ブラウザ)は、宛先が安全である場合にのみリファラーを送信する必要があると言います。そうである場合、リファラーは非セキュアURLに送信されません。

+0

+1情報に感謝します。 –

+0

あなたは大歓迎です - 「バリデーションアイコン」についての私の編集を参照してください... – Yahia

+0

もう一度ありがとうございます。私はJavaScriptを使用してアイコンを動作させました(回答を参照)。 –