「SiteGuard」を導入にすると一部のHTTPヘッダーがとれなくなります。意外と気付かず条件設定などにおいてハマってしまうことがあります。
概要
さくらのレンタルサーバを使用しているサイトにおいてgzip圧縮データを返すようなPHPを作って動作確認していたのですが、いかなる環境で接続しても圧縮されたデータが返されませんでした。「$_SERVER['HTTP_ACCEPT_ENCODING'];
」の値が常に空だったのです。
他のサーバーにあげたら利用できたのでさくらのレンタルサーバの環境が原因なのかと思っていました。他のサイトにあった記事ではさくらのレンタルサーバ固有の問題であるという書き方がなされていました。しかし、さくらのレンタルサーバで作っているテスト用ドメインでは動作したのです。
…あれ?
「phpinfo();
」を眺めていて気が付きました。両方のサーバーでHTTPヘッダーに違いがあったのです。
HTTPヘッダーの違い
「SiteGuard」を有効にしているサイトでは次のHTTPヘッダーが削除されていました。
HTTP_CONNECTION
HTTP_ACCEPT_ENCODING
一方で次のHTTPヘッダーが追加されていました。
HTTP_VIA = 1.0 ss212.guard.sakura.ne.jp:80 (JP-Secure/siteguard_http_01/520/ss212.guard.sakura.ne.jp)
まとめ
「SiteGuard」によって一部のHTTPヘッダーが削除されていることがわかりました。