「SiteGuard」を導入にすると一部の環境変数がとれない

「SiteGuard」を導入にすると一部の環境変数がとれなくなります。意外と気付かず条件設定などにおいてハマってしまうことがあります。

広告 (下に続く)

 概要

さくらのレンタルサーバを使用しているサイトにおいてgzip圧縮データを返すようなPHPを作って動作確認していたのですが、いかなる環境で接続しても圧縮されたデータが返されませんでした。「$_SERVER['HTTP_ACCEPT_ENCODING'];」の値が常に空だったのです。

他のサーバーにあげたら利用できたのでさくらのレンタルサーバの環境が原因なのかと思っていました。他のサイトにあった記事ではさくらのレンタルサーバ固有の問題であるという書き方がなされていました。しかし、さくらのレンタルサーバで作っているテスト用ドメインでは動作したのです。

・・・・あれ?

phpinfo();」を眺めてて気が付きました。両方のサーバーで環境変数に違いがあったのです。

広告 (下に続く)

環境変数の違い

「SiteGuard」を有効にしているサイトでは次の環境変数が追加されていました。

HTTP_VIA = 1.0 ss212.guard.sakura.ne.jp:80 (JP-Secure/siteguard_http_01/520/ss212.guard.sakura.ne.jp)

一方で次の環境変数が削除されていました。酷い…(´;ω;`)

「HTTP_CONNECTION」、「HTTP_ACCEPT_ENCODING」

広告 (下に続く)

まとめ

「SiteGuard」によって一部の環境変数が削除されていることがわかりました。

シェアする