人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

サーバー設定について質問です。
現在知り合いのサーバーを借りPHP等でサイトを運営しています。
サイト自体はブログ形式で運営しているのですが、
自分のサイトからほかのサイトへアクセスした場合、普通はリファラの情報が送信され、
相手サイトのアクセスランキングに取得されるはずなのですが、
まったくランキングにカウントされません。
相手サイトというのも自分のサイトですので除外設定しているわけではありません。
リファラURLが0になるはずもなく、何が原因なのかわかりません。
そのアクセスランキングは
http://www.ziyu.net/
ACRWEBというサービスのアクセスランキングです。
ほかのアクセスランキングでは正常にカウントされるのですが、
このアクセスランキングだけまったく取得できていないようです。
思い当たる原因がPHP等スクリプト側ではないと思うので、サーバー上の設定またはphp.iniか何かかと思っています。
当方サーバーの知識がなくサーバー管理者にも問い合わせたのですが、わからないとのことでした。サーバーの設定等でこういうことがあるのでしょうか。

●質問者: numb08
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● snow0214
●125ポイント

リファラ情報というのは、一般的にブラウザが送る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);

numb08さんのコメント
以前さくらサーバーで運営していた時はまったく問題がなかったのでスクリプトの問題ではないと思っています。

snow0214さんのコメント
どんなスクリプトか見てみないと何とも言えませんが、少なくともPHPでは意図的に書いてあげるか、適当なフレームワークを使わない限り、リファラ情報は送りません。

2 ● slowdancing
●125ポイント ベストアンサー

リファラーを送るか送らないかはブラウザの次第なのでサーバーは関係ないです。
ブラウザの設定やプラグインによって書き換えたりすることもできますが、
通常であればリファラーは問題なく送信されていると思います。
マニュアルをみると、置換設定でURLをサイト名に置き換えることができるようですが、もしこの置換設定を利用しているのであれば、置換ルールに問題がないか確認してみてください。
その他のサイトからのアクセスはカウントされているということなので、そのあたりかと。


numb08さんのコメント
アクセスランキングに記録されるはずの当サイトURLが0ということを考えるとブラウザではないかもしれません。置換ルールにも問題ありませんでした。以前は普通にランキングに置換されていたのですが、ある日突然当サイトのURLが0になりました。

numb08さんのコメント
ちなみに除外設定はまったくしていません。

slowdancingさんのコメント
リファラーは問題なく相手サイトで受け取れているのですよね? 確認がまだでしたら、一度リファラーを目視で確認してみてください。 <pre>// 以下、相手サイトで自分サイトからのアクセスであるか // リファラを出力して目視で確認 if ( 'http://自分サイト.com/' == $_SERVER["HTTP_REFERER"] ) { echo '自分サイトからのアクセスです'; }</pre> >ほかのアクセスランキングでは正常にカウントされるのですが、 >このアクセスランキングだけまったく取得できていないようです。 これはACRWEBのアクセスランキング自体が動作しないという意味ですか?

numb08さんのコメント
ACRアクセスランキングだけ取得できていないようです。 PHP側でリファラやIP等取得するテストを行いましたが正常でした。 いずれも自分の管理するサイトで確認済です。 このアクセスランキングシステムで1週間ほど前からこの状態になっているのですが、 それ以前は正常でした。だから普通は30日分をカウントすればURLがでてくるはずなのですが、それすらまったくでてきません。設定ではなくACRそのものに拒否されているような感じです。

slowdancingさんのコメント
>思い当たる原因がPHP等スクリプト側ではないと思うので、 >サーバー上の設定またはphp.iniか何かかと思っています。 とありますが、心当たりがあるのでしょうか?

slowdancingさんのコメント
>このアクセスランキングシステムで1週間ほど前からこの状態になっているのですが >それ以前は正常でした。 このような状態になる前にサーバーやphp.iniの設定を変更しましたか?

numb08さんのコメント
先日テストしたらHTMLからも取得していないようなのでphp.iniではないのかもしれません。残り考えられるとこはサーバーそのものの設定ぐらいしかないのですが、そんなことあるのでしょうか。

slowdancingさんのコメント
もちろんサーバーの設定を間違うとCGIは動作しなくなりますが、 このアクセスランキングシステムはCGIを設置して利用するタイプではないですよね? ACRWEBのサイトからサービスに登録して利用するように見えますが。 簡易ランキング設置方法について「管理画面にログイン後、タグを取得」とありますが、できればこのタグを見せていただけるとなにか分かるかもしれません。 その際、アカウント固有のIDなどはふせてください。

numb08さんのコメント
<SCRIPT TYPE="text/javascript" SRC="http://rranking14.ziyu.net/rank.php?○○○"></SCRIPT> 上記が取得用のタグになります。

slowdancingさんのコメント
単純に document.referrer の内容をサーバーに送ってカウントしていますね。 であれば、カウントにあたってはサーバーの設定は関係ないです。 送信内容を一度確認してみてください。 WindowsのGoogleChromeで確認する場合であれば、 「Ctrl+Shift+I」でデベロッパーツールを開き、 「Network」タブをクリック、 「Filter(じょうごのようなアイコン)」をクリック、 「Scripts」を選択し、 「Ctrl+r」でページを再読み込み。 これで、そのドキュメントでリクエストされるスクリプトの内容が表示されます。 http://rranking14.ziyu.net/js.php へ送られている内容がリファラー情報等の情報です。 アクセスランキングが動作しなくなった原因としては、 質問者さんが何も設定を変更しておらず、突然動かなくなったのであれば、 ACRWEB側のサーバーで何かトラブルがあった可能性もあります。 ただ、上記のタグから正常にレスポンスは返されるので、 WebサーバーというよりはDBサーバーの不具合か、 アカウント管理上の不整合か、原因はいくつか考えられます。 何にせよ、まずは質問者さんの設定等に誤りがないか、 動作検証しながら確認してみてください。 アクセスランキングの表示(埋め込み)はどのようにしていますか? そちらのコードも差し支えなければ教えてください。

numb08さんのコメント
あまり考えられないことですが、ACRWEB側そのものに遮断されているというような状況ですので一度ACRへ問い合わせてみます。埋め込みは先ほどのタグをHTMLやPHP+Smartyに埋め込んでいます。

3 ● 井戸端さん
●125ポイント

相手サイトというのも自分のサイト

同一IPなんかで弾かれちゃうのではないかしら?


numb08さんのコメント
同一IPでの設定ならアクセス0にはならないはずなんです。当サイトURLだけが除外されたかのように消えました。除外設定していないのですが。

井戸端さんさんのコメント
>> 以前さくらサーバーで運営していた時はまったく問題がなかった << 以前と今のサーバー仕様を見比べてみる必要はあると思うわ。 phpのバージョン違いで挙動が変わるなんてこともあるのよ。 もちろんphp以外にもいろいろとね。

4 ● sin3364
●125ポイント

リファラ(URL履歴)を取得

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ