現在知り合いのサーバーを借りPHP等でサイトを運営しています。
サイト自体はブログ形式で運営しているのですが、
自分のサイトからほかのサイトへアクセスした場合、普通はリファラの情報が送信され、
相手サイトのアクセスランキングに取得されるはずなのですが、
まったくランキングにカウントされません。
相手サイトというのも自分のサイトですので除外設定しているわけではありません。
リファラURLが0になるはずもなく、何が原因なのかわかりません。
そのアクセスランキングは
http://www.ziyu.net/
ACRWEBというサービスのアクセスランキングです。
ほかのアクセスランキングでは正常にカウントされるのですが、
このアクセスランキングだけまったく取得できていないようです。
思い当たる原因がPHP等スクリプト側ではないと思うので、サーバー上の設定またはphp.iniか何かかと思っています。
当方サーバーの知識がなくサーバー管理者にも問い合わせたのですが、わからないとのことでした。サーバーの設定等でこういうことがあるのでしょうか。
リファラーを送るか送らないかはブラウザの次第なのでサーバーは関係ないです。
ブラウザの設定やプラグインによって書き換えたりすることもできますが、
通常であればリファラーは問題なく送信されていると思います。
マニュアルをみると、置換設定でURLをサイト名に置き換えることができるようですが、もしこの置換設定を利用しているのであれば、置換ルールに問題がないか確認してみてください。
その他のサイトからのアクセスはカウントされているということなので、そのあたりかと。
リファラ情報というのは、一般的にブラウザが送るhttpヘッダ情報です。
PHPのどういうスクリプトで他サーバにアクセスしているのか分かりませんが、PHPの標準関数でアクセスする場合にはリファラ情報は送られません。
file_get_contentsでリファラを送るには次のように書いてやります。
$opts = array( 'http' => array( 'method' => "GET", 'header' => "Referer: http://hoge.hoge/\r\n" ) ); $context = stream_context_create($opts); $uri = 'http://hoge2/'; echo file_get_contents($uri, false, $context);
以前さくらサーバーで運営していた時はまったく問題がなかったのでスクリプトの問題ではないと思っています。
どんなスクリプトか見てみないと何とも言えませんが、少なくともPHPでは意図的に書いてあげるか、適当なフレームワークを使わない限り、リファラ情報は送りません。
リファラーを送るか送らないかはブラウザの次第なのでサーバーは関係ないです。
ブラウザの設定やプラグインによって書き換えたりすることもできますが、
通常であればリファラーは問題なく送信されていると思います。
マニュアルをみると、置換設定でURLをサイト名に置き換えることができるようですが、もしこの置換設定を利用しているのであれば、置換ルールに問題がないか確認してみてください。
その他のサイトからのアクセスはカウントされているということなので、そのあたりかと。
単純に document.referrer の内容をサーバーに送ってカウントしていますね。
であれば、カウントにあたってはサーバーの設定は関係ないです。
送信内容を一度確認してみてください。
WindowsのGoogleChromeで確認する場合であれば、
「Ctrl+Shift+I」でデベロッパーツールを開き、
「Network」タブをクリック、
「Filter(じょうごのようなアイコン)」をクリック、
「Scripts」を選択し、
「Ctrl+r」でページを再読み込み。
これで、そのドキュメントでリクエストされるスクリプトの内容が表示されます。
http://rranking14.ziyu.net/js.php へ送られている内容がリファラー情報等の情報です。
アクセスランキングが動作しなくなった原因としては、
質問者さんが何も設定を変更しておらず、突然動かなくなったのであれば、
ACRWEB側のサーバーで何かトラブルがあった可能性もあります。
ただ、上記のタグから正常にレスポンスは返されるので、
WebサーバーというよりはDBサーバーの不具合か、
アカウント管理上の不整合か、原因はいくつか考えられます。
何にせよ、まずは質問者さんの設定等に誤りがないか、
動作検証しながら確認してみてください。
アクセスランキングの表示(埋め込み)はどのようにしていますか?
そちらのコードも差し支えなければ教えてください。
あまり考えられないことですが、ACRWEB側そのものに遮断されているというような状況ですので一度ACRへ問い合わせてみます。埋め込みは先ほどのタグをHTMLやPHP+Smartyに埋め込んでいます。
相手サイトというのも自分のサイト
同一IPなんかで弾かれちゃうのではないかしら?
同一IPでの設定ならアクセス0にはならないはずなんです。当サイトURLだけが除外されたかのように消えました。除外設定していないのですが。
以前さくらサーバーで運営していた時はまったく問題がなかった
以前と今のサーバー仕様を見比べてみる必要はあると思うわ。
phpのバージョン違いで挙動が変わるなんてこともあるのよ。
もちろんphp以外にもいろいろとね。
単純に document.referrer の内容をサーバーに送ってカウントしていますね。
2014/03/04 13:20:05であれば、カウントにあたってはサーバーの設定は関係ないです。
送信内容を一度確認してみてください。
WindowsのGoogleChromeで確認する場合であれば、
「Ctrl+Shift+I」でデベロッパーツールを開き、
「Network」タブをクリック、
「Filter(じょうごのようなアイコン)」をクリック、
「Scripts」を選択し、
「Ctrl+r」でページを再読み込み。
これで、そのドキュメントでリクエストされるスクリプトの内容が表示されます。
http://rranking14.ziyu.net/js.php へ送られている内容がリファラー情報等の情報です。
アクセスランキングが動作しなくなった原因としては、
質問者さんが何も設定を変更しておらず、突然動かなくなったのであれば、
ACRWEB側のサーバーで何かトラブルがあった可能性もあります。
ただ、上記のタグから正常にレスポンスは返されるので、
WebサーバーというよりはDBサーバーの不具合か、
アカウント管理上の不整合か、原因はいくつか考えられます。
何にせよ、まずは質問者さんの設定等に誤りがないか、
動作検証しながら確認してみてください。
アクセスランキングの表示(埋め込み)はどのようにしていますか?
そちらのコードも差し支えなければ教えてください。
あまり考えられないことですが、ACRWEB側そのものに遮断されているというような状況ですので一度ACRへ問い合わせてみます。埋め込みは先ほどのタグをHTMLやPHP+Smartyに埋め込んでいます。
2014/03/04 15:26:02