Movable Type で普通のサイトを作るのはどうだろう、というエントリーの流れで暫定的に 403 というまたどうにも芸のないタイトルでいかにも Movable Type でない普通っぽいサイトっぽいアレを設置してみたのだけれど、Another HTML-lint gateway が頑としてこれに OK サインを出さない。
.htaccess には思いっ切り全力の物凄い勢いで charset 指定しまくっているのだけれど(レスポンスヘッダでの文字コード指定 などを参照しつつ)(というかメディアタイプに text/html なんて指定してないのだけれど……?)、どうやらそれをこの比類なく有益な CGI すなわちサーバサイドプログラムとしての Another HTML-lint は軽快にスルーすることを試みている様子。MTPaginate を試用する予定で拡張子が php になっているのだけれど、それが原因だろうか、と、いろいろ検索とかしてみる(ていうか前述のレスポンスヘッダの記事と同じサイトに以下のような記述が)。
ちなみに、この設定でも Another HTML-lint には、
HTTPレスポンスヘッダに指定されているメディアタイプ text/html は XHTML1.1 には指定しないようにしましょう。と怒られてしまいます。HTML-lint は、Accept に application/xhtml+xml を入れてないのにチェックするようです。
ということはつまり、可能性として、Another HTML-lint は「読めないものはスルーするけど違反(非推奨)的な記述があったらどんどん警告出すしエラー出すし点数下げるし多少行き過ぎもたまには許してよ」とそういうスタンスであるように思われて、「ああ彼は彼で仕事に対していろいろ思うところがあるのだろうなぁ」と感慨深くなったりするものの、というかそんなにならないけども、エラーが出るというのはわかっていても心境的にあまり良くないので最近は W3C の Validator を使っていたりします。軽いしね。
ということになりました(コメント欄 参照)。Another HTML-lint の中の人と周辺の皆様には多大なるご迷惑をおかけしました。
.htaccessで指定しても改善されない → PHPのheader関数を使えば良さそうだ、というところまではたどり着いたのですが、「headerは既に送信されているので再度送信することはできませんよ」という感じのエラーを乗り越えられず挫折しました。ローカルでPHP動かしたら上手く指定できたんですが、アップロードするとエラーが。
じゃサーバ側の設定を変更とかそういうことをしてみるか、という段になって「そもそもPHPで動かすことが今メリットある?」 → 「includeするわけでもないし別にいいか」という感じで結局HTMLファイルでいいやという全然進歩の見られない結果に落ち着きました。どうもお騒がせいたしました。
ひとつふたつくらい言語を覚えた方が良さそうですね。PerlでもPHPでも。
北村
Another HTML-lintがcharsetをスルーしてるのではなく、実際にレスポンスヘッダにcharsetが含まれていないようです。
※ご参考まで:
http://web-sniffer.net/?url=http%3A%2F%2F403.junkwork.net%2F
&submit=Submit&type=HEAD
※Another HTML-lintでも「URL指定のときHTTPレスポンスヘッダを表示します」にチェックを入れるとレスポンスヘッダを見ることができます。
PHPのことはよく知らないのですが、レスポンスヘッダはheader()という関数で出力するようです。
http://search.net-n
ewbie.com/php/function.header.html