.htaccessの偉い人 Part3

このエントリーをはてなブックマークに追加
443nobodyさん
http://pc.2ch.net/test/read.cgi/perl/1041611769/178-

このスレの197です。
SSIをhtmlで使いたいと言う方が現れて書き方などを考えていた中で
htmlでSSIを使うと鯖が重くなって同じ鯖の人に迷惑をかけないのか?
と疑問をもちました。
どのスレで質問したらいいかよくわからなかったので
.htaccesの質問だったのでココに書かせてもらいました。
スレ違いだったらすいません。
444nobodyさん:03/01/09 01:57 ID:???
SSIがそれなりの負荷になるのは事実。
また、最終更新時刻を示すHTTPヘッダが返されなくなるので、
2回目以降のアクセスでIf-Modified-Since:を使った条件つき取得が
できなくなり転送効率が落ちる(ただし、これはXBitHackで回避できる)。

.htmlの拡張子で特定のファイルでだけSSIを使いたいのであれば、
<Files "hoge.html">
SetHandler server-parsed
</FIles>
とすればよい。
445nobodyさん:03/01/09 02:13 ID:???
自分で書いておいて忘れてた(汗)。

>ただし、これはXBitHackで回避できる

.htaccessに
XBitHack on
と書いておいておけば、通常のSSIの設定をしなくても、
ユーザ実行権限のパーミッションを設定したHTMLファイルがSSIとして処理される。
<Files>で限定するよりもオススメ。

さらに、
XBitHack full
とすれば、グループ実行権限を設定したファイルでは、
SSIでもLast-Modified:が返されるようになる。
# Content-Length:はつかなかったような。
446nobodyさん:03/01/09 02:43 ID:???
>>444さん
丁寧なお返事ありがとうございました。
特定のファイルのみってこともできるんですね。
勉強になりました。

>>445は…よく意味がわからなかったのでまた自分で調べてきます!
ありがとうございましたー
447nobodyさん:03/01/09 12:04 ID:SDmzZYtG
よくわからんという声が多いみたいだし、おれもヒマなので解説してみる。
ついでにage。

SSIを使う場合には.htaccessで以下のように書けと言われることが多い。

AddHandler server-parsed .html
↑Apache1.3系の標準
AddType text/x-server-parsed-html .html
↑動くけど古い形式なのでオススメできない
AddOutputFilter INCULDES .html
↑Apache2系の標準

これは拡張子ごとにSSIかどうかを決めるものだが、まったく別の方法で
SSIにすることもできる。これがXBitHack。上のような設定をするかわりに

XBitHack on または
XBitHack full

と.htaccessに書いた場合、パーミッションが744(-rwx-r---r--)のファイルが
SSIとして処理される。また、fullにして754(-rwx-r-x-r--)ならば、
SSIとして処理された上でファイルの最終更新時刻もブラウザに返される。
要するに、サーバにFTPでアップロードするときに、SSIを使いたいものにだけ
CGIと同じような感覚で実行パーミッションを設定してやればいいということ。

http://www.apache.jp/docs/howto/ssi.html#configuringyourservertopermitssi
http://www.apache.jp/docs/mod/mod_include.html#xbithack

# 正確には、744/754でなくても、ユーザ実行権限(---x------)と
# グループ実行権限(------x---)のビットが設定されていればいい。
# これがXBitHackという名前の由来。