MW211 EXIT

devlog
Apache/お気に入りアイコンエラー・後編
2013年05月09日
【エラーログを抑止する方法】
  エラーを揉み消してしまう。
  Apacheの設定ファイル(httpd.conf)に以下を記述する
  ┌────────────────────────────────────┐
  │Redirect 404 /favicon.ico                                               │
  └────────────────────────────────────┘
  これは、「/favicon.ico」(ドキュメントルート直下のお気に入りアイコン)が
  見つからない(404エラー)の場合、リダイレクトする(がリダイレクト先はない)
  これにより、エラーが揉み消される。
  しかし、アクセスログは欺けない。

【アクセスログを抑止する方法】
  さすがに揉み消せないので、ログに出力させない方向で対処する。
  ┌────────────────────────────────────┐
  │SetEnvIf Request_URI "^/favicon\.ico$" no_log                           │
  │<IfModule log_config_module>                                            │
  │    CustomLog "C:/logs/access.log" common env=!no_log                   │
  │</IfModule>                                                             │
  └────────────────────────────────────┘
  「env」で「no_log」変数(変数名は任意)に条件(お気に入りアイコン)を指定して
  「!=」でこれを除外する形となる
分類:Apache
Apache/お気に入りアイコンエラー・前編
2013年05月08日
Apacheのエラーログに以下のようなメッセージが頻発している時がある。
┌──────────────────────────────────────┐
│[error] [client 127.0.0.1] File does not exist: C:/www/favicon.ico          │
└──────────────────────────────────────┘
と同時にアクセスログには以下が出力されている。
┌──────────────────────────────────────┐
│"GET /favicon.ico HTTP/1.1" 404 209                                         │
└──────────────────────────────────────┘

どうやら、ドキュメントルートの「favicon.ico」(お気に入りアイコン)を
探しにいって見つけられなかったようだ。

「favicon.ico」はHTML上に以下のように設定することにより
そのファイルをお気に入りアイコンとすることができるのだが、
そのApache管轄の設定がないページ(HTML)を開くとそうなるようだ。
┌──────────────────────────────────────┐
│<link rel="shortcut icon" href="favicon.ico"/>                              │
└──────────────────────────────────────┘

ブラウザで比較してみると、IE以外が軒並みエラーとなっている。
┌─┬────────────────────────────────────┐
│○│InternetExplorer(IE)                                                    │
├─┼────────────────────────────────────┤
│×│FireFox、Chrome、Safari、Opera                                          │
└─┴────────────────────────────────────┘

ということで、まとめると以下のような原因だった。
・「favicon.ico」を指定しないページはドキュメントルート配下の「favicon.ico」を
  そのページの「favicon.ico」と見なして読みに行く
  しかし、必要ないのでドキュメントロート配下に「favicon.ico」は置いていなかった
・IEの場合はお気に入り登録時のみ読みに行くが、他は開く都度読みに行く
  ということで、IE以外はページを開くたびに毎回エラーを誘発してしまう

そんな訳で、Apacheのエラーログにエラー出まくりなわけでよろしくない。

解決方法としては、ずばり「favicon.ico」をドキュメントルート直下に
置くというのがあるが、他にも設定で回避できそうだ。

詳しくは次回。つづく。
分類:Apache
SERVER_NAMEとHTTP_HOSTの違い
2013年04月27日
CGI環境変数「SERVER_NAME」($_SERVER['SERVER_NAME'])と
「HTTP_HOST」($_SERVER['HTTP_HOST'])の内容はたいていは同じなので混同してしまう。

これ二つの違いとは?
簡単にいえば、「SERVER_NAME」はサーバが持っている名前、
「HTTP_HOST」はブラウザがサーバ名として要求された名前
(人間に例えれば、「鈴木く~ん」と呼ばれた名前ってことか)ってこと。

よって、「クロスサイトスクリプトく~ん」と呼ばれる可能性があるので
「HTTP_HOST」を扱う場合には、サニタイズを施す必要がある。
#常識的には自ら「クロスサイトスクリプトくん」を自称することはないので
  「SERVER_NAME」の方はサニタイズ不要

もう少し厳密にいうと
【SERVER_NAME】
  Apacheの設定ファイル「httpd.conf」で設定している
  (文字通り)「ServerName」の値
  但し、「UseCanonicalName」が「On」に設定されないと反映されないらしく
  IPアドレスやドメイン名となることが多い
【HTTP_HOST】
  リクエスト電文中の「host:」の値

また、ポート番号(例えば「:8080」)を指定した場合は、
呼びかけた側の「HTTP_HOST」はポート番号も付随するが、
呼ばれた側の「SERVER_NAME」はサーバ名はポート番号を含まないので
ポート番号は除外された形となる(らしい)。
ちなみにポート「:80」で実験してみたが、
ブラウザが「:80」を勝手に省略してしまうらしく、差分はなかった。
分類:Apache
Apache/localhostと自身のIPアドレスの違い
2012年08月12日
localhostが127.0.0.1、自身のIPアドレスが192.168.x.xだとして、
サーバ(PHP)からCGI(Cとか)をjQueryのAjaxで呼び出す場合、
組み合わせによって、うまくいかない場合がある。

  ○サーバ=127.0.0.1    CGI=127.0.0.1
  ○サーバ=192.168.x.x  CGI=192.168.x.x
  ×サーバ=127.0.0.1    CGI=192.168.x.x
  ×サーバ=192.168.x.x  CGI=127.0.0.1

127.0.0.1と192.168.x.xには高い壁があるようだ。

なぜだろう。
分類:PHP、jQuery、Apache、【未解決】
Apache/セッションファイル
2012年08月11日
同一ブラウザで同一サイトを見ている場合には、
タブやウインドウがいくつ上がっても、同じセッションファイルを共有する。

だが、それに例外が。

localhost(127.0.0.1)を経由した場合と
自身のIPアドレス(192.168.x.x)を経由した場合とでは、
別のセッションファイルとなるのである。

………、同一サイトじゃないということか。。。
分類:PHP、Apache
Apache/localhostとは
2012年08月10日
Apacheで、「http://localhost/」が「http://127.0.0.1/」を指すのは
「C:¥WINDOWS¥system32¥drivers¥etc¥hosts」とかで定義されているから。
┌──────────────────────────────────────┐
│# localhost name resolution is handled within DNS itself.                   │
│127.0.0.1       localhost                                                   │
│#   ::1         localhost                                                   │
└──────────────────────────────────────┘
っていうか、実はコメントアウトされていて
既定値が上記って話だったりするわけですが。。。
分類:Apache
前へ 1 2 次へ