# CGI 用ディレクトリ (絶対パスかCGI相対パスで指定、なるべく絶対パスにしてください)
$RULEDIR = 'C:/htmllint/'; # 規則ファイルの場所
$LOGSDIR = 'C:/htmllint/logs/'; # ログファイルの場所
$TMPDIR = 'C:/htmllint/tmp/'; # テンポラリファイルの場所
$IMGDIR = 'C:/htmllint/'; # イメージファイルの場所
$TAGSLIST = 'C:/htmllint/tags/'; # タグ一覧キャッシュ用の場所 (空ならキャッシュしない)
# 設定するときはアクセス権を適当に与えておくこと
# HTML 用ディレクトリ (CGI が出力する HTML 中で使う)
$HTMLDIR = './'; # HTMLファイルの場所
$GATEWAYURL = $HTMLDIR.'htmllint.html'; # ゲイトウェイサーヴィス HTML
$EXPLAIN = $HTMLDIR.'explain.html'; # 解説用 HTML (HTML用)
$CGIROOT = $HTMLDIR; # CGIの場所
$IMGROOT = './'; # イメージファイルの場所
# LWP や Jcode.pm の使用を制限する (制限したいときコメントを外す) #$NOUSELWP = 1; #$NOUSEJCODE = 1;
# Lynx (不要あるいは未実装ならコメントアウト) #$LYNX = '/usr/local/bin/lynx';
# w3m (不要あるいは未実装ならコメントアウト) # カラー機能のない場合 -M の指定は不可 # -e は EUC、Shift JIS なら -s #$W3M = '/usr/local/bin/w3m -dump -T text/html -M -e';
# htmllint.cgi でローカルファイルも取得できるようにする (不要ならコメントアウト) # 取得できるファイルは、クライアント上のファイルではなくてサーバ上のファイルを # 指すことに注意してください (つまり、ローカルファイルというのは不正確です) # したがって、この指定は、***ローカルなサーバ以外ではセキュリティ上危険です*** # この指定により、file:// で始まるプロトコルを URL に指定できるようになります # ブラウザは、これをクライアント上のファイルとして取得しますが、ここではサーバ上 # のファイルとして取得するので注意してください # Windows上のサーバでは、C: のようなドライブ名から始まるファイル名も記述できます $GETLOCALFILE = 1;
Windows 2000では、Administratorでログオンして、(オプション/option)-(一般/general)で、サービスタグの下の「サービス」のところをチェックすると、サービスとして登録されます。こうしておくと他のユーザでログオンしても使用できます。サービスに登録すると以下の指定が無効になりますので最初に指定しましょう。
(オプション/option)-(一般/general)で(.pl, .cgiの実行プログラム/exec prog for .pl, .cgi)の所にperlの実行モジュールを指定します。この例ではActivePerlがautoexec.bat等に登録しているのでperlis.dll。もちろん、c:\perl\bin\perlis.dllと書いても大丈夫です。(Activeperl Build 502までのとんでもなく長いディレクトリは止めたようです。)
(エイリアス/aliases)の所にhtmllintのありかを適当な名前で登録します。たとえば/htmllintをc:\htmllintに結びつけます。"C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe" -t -f "C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf" -d "C:\Program Files\Apache Software Foundation\Apache2.2\." pause
Alias /htmllint/ "C:/htmllint/"
<Directory "C:/htmllint/">
Options Indexes +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
AddDefaultCharset ISO-2022-JP
</Directory>
AddHandler cgi-script .cgi .pl
httpd.exe -k install
#!C:/perl/bin/perl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang=en>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Content-Script-Type" content="text/javascript">
<title>Another HTML Lint</title>
<LINK REL="contents" HREF="./index.html">
</head>
<body>
<script type="text/JavaScript" defer><!--
var uri = external.menuArguments.location.href;
var uri = uri.toLowerCase();
var uri = uri.replace("file:///c:","http://localhost");
var uri = uri.replace(/html#.+/,"html");
var uri = "http://localhost/htmllint/htmllint.cgi?URL=" + uri + ";V;T=15;E=cant-get-url";
window.open (uri, "HTMLLint");
--></script>
</body>
</html>
$msie = "C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE";
$lint = " http://localhost/htmllint/htmllint.cgi?URL=";
$file = filename2;
$base = "C:\\";
#off = strstr($file, $base);
if (#off != -1) {
#rlen = strlen($file) - strlen($base);
$file = rightstr($file, #rlen);
#off = strstr($file, "\\");
while (#off != -1) {
$file = leftstr($file, #off) + "/" + rightstr($file, #rlen - #off - 1);
#off = strstr($file, "\\");
}
$file = "http://localhost/" + $file;
}
run $msie + $lint + $file + ";V;T=15;E=cant-get-url;CheckGET=on;";
endmacro;