このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

WebSTAR で Not Found を CGI で表示する

発言者:モリヤ
( Date Thursday, October 19, 2000 03:43:26 )


 ついさっき,ふと気がついたのですが,WebSTAR では,ファイルが見
つからなかったときに表示される HTML を指定するところで CGI を指
定してやることができるんですね。

 これを利用すれば,フォルダー毎に違う Not Found ページを用意す
ることができるなぁと思って,下のようなスクリプトをちょっと書いて
サーバーのルートに置いて試したらうまくいきました。

----
property crlf : (ASCII character 13) & (ASCII character 10)
property myRoot : ""

property http_10_header : "HTTP/1.0 404 Not Found" & crlf ツ
     & "Mime-Version: 1.0" & crlf ツ
     & "Server: WebSTAR/3.0.2" & crlf ツ
     & "Content-type: text/html" & crlf & crlf

on run
     set myRoot to alias {":"} as string
     set myRoot to text from character 1 to -2 of myRoot
end run

on ヌevent WWWスsdocネ path_args given ヌclass scnmネ:script_name
     set myPage to "Error"
     set oldDel to AppleScript's text item delimiters
     try
          set AppleScript's text item delimiters to {"/"}
          set pathList to rest of (every text item of script_name)
          set AppleScript's text item delimiters to {":"}
          repeat while 0 < length of pathList
               set pathList to reverse of (rest of (reverse of pathList))
               set tgPath to ({myRoot} & pathList & "NotFound.html") as string
               try
                    set myPage to readFromFile file tgPath
                    exit repeat
               on error
               end try
          end repeat
          set AppleScript's text item delimiters to oldDel
          return http_10_header & myPage
     on error msg number num
          set AppleScript's text item delimiters to oldDel
          return http_10_header & myPage & num & ", " & msg
     end try
end ヌevent WWWスsdocネ
----

 これって,当たり前のことなのかもしれないですけど,自分で気づい
たってことがちょっと嬉しかったので報告させてもらいました。
 失礼しました。