AN HTTPD ゲストブック/コメント集(2004年1月26日15:25)


fqueen fqueen2@yahoo.co.jp 2004/01/28 10:53

中田さん、いとさん、こんにちは。

中田さんの、
 オプションの
 >  ○SSIを許可する ○index.html ○*.shtml ×*.html
 の「index.html」というのは「/index.html」と、最初に「/」がついているはずです。

……確かに / がついています。。。
2年使っていて初めて知りました……。

中田さん、いとさんから指摘のあった、
 ブラウザがIEなら、ブラウザのキャッシュを見ているのではないでしょうか?
 私も 11.はブラウザのキャッシュを表示しているのだと思います。

は、毎回キャッシュを消してリロードすることで確かにサーバとしての動作通りになりました。ログを見ても確かに 304 でした。ブラウザはキャッシュを見てもSSI的に表示される日付は更新されていたので、全く疑問に思っていませんでした。

勉強になりました。ありがとうございました。


いと gfh05223@nifty.com 2004/01/27 23:01

fqueenさん

私も 11.はブラウザのキャッシュを表示しているのだと思います。
そのときのステータスコード(httpd.logで各行の右から二つ目の数字)は
200ではなく 304になっているのではありませんか?

IEで強制リロード(Ctrlキーを押しながら更新ボタンをクリック)すると
更新日時は表示されなくなりませんか?


中田昭雄 nakata@st.rim.or.jp 2004/01/27 21:19

fqueen さん、
そういうことだとすると話が違いますね。
2.と11.がおかしいです。

オプションの
>  ○SSIを許可する ○index.html ○*.shtml ×*.html
の「index.html」というのは「/index.html」と、最初に「/」がついているはずです。
つまり、ドキュメントルート直下の index.html という意味ですから、「○/index.html」の場合、
http://127.0.0.1/~sv/index.html
では SSI は有効になりません。
http://127.0.0.1/index.html
なら SSI が有効です。
「○*.html」にしてやれば(つまり、9.)
http://127.0.0.1/~sv/index.html
でも SSI が有効になります。
「*.html」のチェックをはずせば、
http://127.0.0.1/~sv/index.html
では SSI が動作しないというのが正しい動作です。
8.は *.shtml でSSIが有効ですからちゃんと動作して正常です。
ですから、2.と11.がおかしいのです。

ちょとわかりませんが、
ブラウザがIEなら、ブラウザのキャッシュを見ているのではないでしょうか?
IEのオプションの「インターネット一時ファイル」の設定を「ページを表示するごとに確認する」にしてもう一度確認してみてください。

それでも同じなら、AN HTTPD のオプションのログでトレースにチェックを入れて、一連の動作をおこない、その時の trace.log をメールで送ってください。


fqueen fqueen2@yahoo.co.jp 2004/01/27 14:00

こんにちは、中田さん。そちらでは再現しませんでしたか……。
私の方は再度行ってみましたが、再現しました。
昨日とは違う方法ですが、以下に再現方法を書きます。

現在wwwサーバとなっているPC(仮に A )
An HTTPDを一度もサーバとして使ったことのないPC(仮に B )

1.A のPCは現在稼働中で、ルート以下は次のようになっている(必要分のみ)
  /ssi/ssisample.shtml /SV/public_html/index.html(ここのSVは大文字)
  オプション−一般の設定は次のようになっている(必要分?のみ)
  ドキュメントルート c:\server
  デフォルトインデックス index.html
  /~sv -> ドキュメントルート \sv/public_html(ここのsvは小文字)
  リモートホスト 取得しない
  ○SSIを許可する ○index.html ○*.shtml ×*.html

  /SV/public_html/index.html には、次のようなSSIが仕込んである
  <a href="./aaa/bbb.txt">最新のbbb </a> <!--#config timefmt="%Y/%m/%d"--> <!--#flastmod file="./aaa/bbb.txt"--><br>

2.これをローカルでチェックすると、しっかり更新日時が表示される。

3.この A のPCのサービスを停止し、ルート以下を B のPCに全てコピーして、B のPCでサーバを起動。(ここで、c:\httpdとする)

4.すると、オプション−一般 で、ドキュメントルートや、
  /~sv -> ドキュメントルート \sv/public_html のsvの部分が B のPCのユーザ名に変わっている。それと、SSIを許可する のチェックが外れている。

5.ドキュメントルートと/~sv ->の部分のドキュメントルートを B のPCのユーザ名からsvに修正する。

6.SSIを許可する にチェックを入れる。

7.この状態で B のPCのブラウザ(IE6.0)でhttp://127.0.0.1/~sv/index.htmlをチェックすると、更新日時が表示されない。

8.しかし、http://127.0.0.1/ssi/ssisample.shtmlをチェックすると、しっかり表示される。

9.SSIを許可するの一番右にある、*.html にチェックを入れる。

10.この状態で再度チェック(ブラウザをリロード)すると、更新日時が表示される。

11.この後は*.html のチェックを外してもしっかりと更新日時が表示される。

以上でした。


中田昭雄 nakata@st.rim.or.jp 2004/01/26 20:43

fqueen さん、
新たに設定をし直したらそうなったという意味でしょうか?
確かにそういう動作をするとすればおかしいですね。
が、とりあえず私のところでは再現できません。


fqueen fqueen2@yahoo.co.jp 2004/01/26 15:25

こんにちは。An HTTPDを2年くらい使用(現在は1.42k)しています。
使用していて、気になる動きがあったので報告します。
私は今回、ルート以下(仮にc:\server\httpd)をフォルダごと退避させ、HDDをフォーマット、OS(XPPro)再構築後、退避してあったフォルダを構築後のHDDに戻しました(c:\httpd)。この際、レジストリが使用されているのでHTTPDのいろいろな設定がリセット(再構築)されるのはわかるのですが(例えばユーザ認証がリセットされるとか、logの保存フォルダとか、ドキュメントルートなど)、それまで使えていたSSIが動かなくなりました。(ここで、「SSIを許可する」「index.html」「*.shtml」には退避前も後もチェックが入っています。)
ssisample.shtmlは正常に動く。ドキュメントルート下のindex.htmlのssiは動かない……。という困った現象が起こりましたが、次の方法で解決しました。
「*.html」のチェックを入れる。(その後はチェックを外してもssiは正常に動作)
これだけだったのですが、サーバの動きとしてはおかしいと思ったので報告しました。
こんな管理方法の私が一番悪いと思うのですが……。