0

次のスクリプトは、私の Web サイトのヘッダーにあります。Google アナリティクスを使用して、特定の Web サイトが移動先の Web サイトに送信しているトラフィックの量を監視したいと考えています。このスクリプトは、ユーザーを私の Web サイトからトラフィックを誘導している Web サイトにリダイレクトします。スクリプトをテストしましたが、リダイレクトされません。スクリプトをテストする必要がある別の Web サイトに自分の Web サイトへのリンクを配置しましたが、トラフィックを誘導しようとしている Web サイトにリダイレクトされませんでした。何か案は?

 <?php
 $ref = $_SERVER["HTTP_REFERER"];
 if ( $ref != 'http://www.websitetrafficiscomingfrom.com' )
exit;
 ?>

 <?php if ( $ref == 'http://www.websitetrafficiscomingfrom.com' ) { ?>

 <script type="text/javascript">

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-32605120-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

</script>

 <!-- <?php } else if ($_SERVER['HTTP_REFERER'] != "") { ?>

 <script type="text/javascript">
 var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-32554427-2']);
  _gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
   var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 })();

 </script> -->

 <meta http-equiv='REFRESH" content='0;url=websitetrafficissupposedtogoto.com'>

 <?php } ?>
4

1 に答える 1

1

まず、リファラーは常に空白か、完全な URL (/必要に応じて末尾の を含む) のいずれかになります。したがって、それは決してあなたが求める値にはなりません。その結果、あなたは常に死に、何もしない空白のページになります。

それはさておき、私は本当にあなたが何をしているのか疑問に思う必要があります. あなたの質問は、それに付随するコードと比較すると意味がないようで、どのコードが冗長に見えますか。つまり、かどうかを確認し、そうであればa != b終了します。それ以外の場合は、a == b突然真でなくなる可能性があるかのように、かどうかを確認します。さらに悪いことに、コメントアウトされたelseブロックがあり、ある時点で if をもう一度確認するつもりだったことを明確に示してa != bいます。

このコードを完全に削除することをお勧めします。を使用するのは有用でも信頼性もありませHTTP_REFERERん。私がそれを使用する唯一のことは、ほとんどのホットリンクの試みをブロックするための弱い障壁としてです。それでも、注意してください。

于 2012-06-13T03:54:32.363 に答える