先の「metaタグのapplication/xhtml+xml(2)」で、ApacheではどうもSSIはtext/htmlであるファイルにしか効かない模様
、などと書いてましたが、後で色々と試してみたところ、この文は間違いであると分かりました。申し訳ありません。以下、application/xhtml+xmlであるファイルでSSIを行う方法について述べます。
まず、SSIを行うにはAddHandler server-parsed
命令による方法がありますが、この場合は.htaccessファイルに次のように設定すれば、application/xhtml+xmlであるファイルでも問題なくSSIが使用できます。
AddHandler server-parsed xhtml
AddType "application/xhtml+xml; charset=Shift_JIS" xhtml
SSIを行うには、他にXBitHack
命令による方法もありますが、この場合、単にXBitHack
を置くだけだと、これはtext/htmlであるファイルにしか働きません。例えば次のような場合:
XBitHack full
AddType "text/html; charset=Shift_JIS" html
AddType "application/xhtml+xml; charset=Shift_JIS" xhtml
自分は普段XBitHack
の方を使用していたので、この設定でapplication/xhtml+xmlのファイルにSSIが効かないことをもって、SSIはtext/htmlであるファイルにしか効かない
と勘違いしていたのでした。
さて、AddHandler server-parsed
による方法なら、application/xhtml+htmlであるファイルでもSSIが使えるわけですが、これだとXBitHack full
でできた、Last-Modifiedヘッダを出すSSIにはなりません。が、試しに次のようにAddHandler server-parsed
とXBitHack full
を両方書いてみると、属性754のファイルで、Last-Modifiedヘッダを出力するSSIを実現することができました。
XBitHack full
AddHandler server-parsed html xhtml
AddType "text/html; charset=Shift_JIS" html
AddType "application/xhtml+xml; charset=Shift_JIS" xhtml
ひとつ欠点があるとすれば、ファイルの属性を644などにしても「SSIを効かなくする」ことができないところですが、
以上、検証はApache/1.3.12(当サイトのサーバ)で行いました。
(2003年1月15日)
北村曉 kits@akatsukinishisu.net