前の日 / 次の日 / 最新 / 2007-08

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2007-08-03 Fri

XHTML の MIME [Apache]

XHTML の MIME は application/xhtml+xml
XHTML の 拡張子 は .xhtml で登録されている。

Content-Type は application/xhtml+xml でレスポンスがある。

IE は XHTML の MIME を認識しないので表示できない。
IE に HTML の MIME で送信すると表示できる。

mod_rewrite で書き換える方法が見つかる。

mod_rewrite を使う場合

    <FilesMatch "\.xhtml\.?">
        Options FollowSymLinks 
        RewriteEngine On
        RewriteCond %{HTTP_ACCEPT} !application/xhtml\+xml
        RewriteRule .* - "[T=text/html]"
    </FilesMatch>

mod_rewrite だと期待した動作をする。

mod_rewrite を使わない設定だと、

    <FilesMatch "\.xhtml$">
        SetEnvIf Accept "application/xhtml\+xml" ACCEPT_XHTML
        Header set Content-Type text/html env=!ACCEPT_XHTML
    </FilesMatch>

で出来そうだが Content-Type がセットできない。
Content-Type をセットした後に上書きされている気がする。