Concurrent Clean : CGI by Clean

http://cleanoptenv.sourceforge.net/query/1?query=1
環境変数を取得してみた。
さらに、mod_rewriteで、スマートURLにした。

RewriteEngine on
RewriteBase /
RewriteRule ^(.*) /cgi-bin/PrintEnv/$1

cgi-binのサイトに置いた.htaccessで、アクセス制限が有効にならない。

      • -

また、CleanJのサイトに仮置きしていたファイルを削除した。

      • -

環境変数を取得するCGIのソース。

module PrintEnv

import StdEnv, OptEnv, Html

Start w = w --> printHtml ["Content-type: text/html"] (page envs)
  where
    envs = ["SERVER_SOFTWARE"   //サーバソフトウェアの名前とバージョン
           ,"SERVER_NAME"       //サーバのホスト名、またはIPアドレス
           ,"GATEWAY_INTERFACE" //CGIのリビジョン
           ,"SERVER_PROTOCOL"   //プロトコルの名前とリビジョン
           ,"SERVER_PORT"       //リクエストが送られて来たポートの番号
           ,"REQUEST_METHOD"    //リクエストが作られたメソッド。GET、POSTなど。
           ,"PATH_INFO"         //エキストラパス情報
           ,"PATH_TRANSLATED"   //PATH_INFOを変換した情報
           ,"SCRIPT_NAME"       //実行されるスクリプトの仮想パス
           ,"QUERY_STRING"      //クエリー情報
           ,"REMOTE_HOST"       //リモートホスト名
           ,"REMOTE_ADDR"       //リモートホストのIPアドレス
           ,"AUTH_TYPE"         //認証メソッド
           ,"REMOTE_USER"       //ユーザの認証名
           ,"REMOTE_IDENT"      //リクエストを出しているユーザ
           ,"CONTENT_TYPE"      //データのコンテントタイプ
           ,"CONTENT_LENGTH"    //データの長さ
           ,"HTTP_ACCEPT"       //クライアントが受付けるMIMEタイプ
           ,"HTTP_USER_AGENT"   //クライアントがリクエストを発行するブラウザ
           ]

page envs =
    __HTMLSTART__
    <html>
    <head>
    <title>CGI by Clean</title>
    </head>
    <body>
    <h1>CGI Envorinment Variables</h1>
    <table>
    <tr><th>Name</th><th>Value</th></tr>
    <% HtmlData (map tblrow envs) %>
    </table>
    </body>
    </html>
    __HTMLEND__
  where
    tblrow env = case getEnvironmentVariable env of
                   EnvironmentVariableUndefined = tblrow ""
                   EnvironmentVariable var = tblrow var
      where
        tblrow var =
            __HTMLSTART__
            <tr><td><% HtmlText env %></td><td><% HtmlText var %></td></tr>
            __HTMLEND__