# DeleGate の起動オプションのような構成のことをさします。
delegated -P8080 \
SERVER="http" \
MOUNT="/* http://WebServer/*" \
PERMIT="http:WebServer:*"
# エラーメッセージをマウントしてカスタマイズしておいた(これはお好みで) MOUNT="/-/builtin/mssgs/404-notfound.dhtml file:/delegate/mssgs/404.dhtml" MOUNT="/unauth/* file:/delegate/mssgs/401-unauth.dhtml" # 偽装するアクセスの対象を、 ApacheSV に限定しておく(ループしそうだから)。 CMAP="fake.cfi:FTOCL:*:ApacheSV:*" |
# CFI で呼び出すフィルタの内容 --- Contents of fake.cfi --- #!cfi X-Status-Code:404 Body-Filter: w3m -dump_source http://DeleGate/-404-/ -- X-Status-Code:401 Body-Filter: w3m -dump_source http://DeleGate/unauth/ -- Remove/Via: Remove/Server: Remove/X-Powered-By: ++ Output-Header:Server: %{SERVER_SOFTWARE} --- End of Contents --- |
X-Status-Code:404次のフィルタは、cgi や Apache の認証エラー (401) を処理しています。
--- 404 エラーに限定して
Body-Filter: w3m -dump_source http://DeleGate/-404-/
--- DeleGate がマウントしていない (存在しない) URLに、w3m コマンドを -dump_source オプションつきでアクセスして、結果、 DeleGate が生成する 404 エラーメッセージをフィルタの結果として返しています。
X-Status-Code:401最後のフィルタは、ヘッダ関係のフィルタです。
--- 401 エラーに限定して
Body-Filter: w3m -dump_source http://DeleGate/unauth/
--- 認証エラーメッセージをマウントした URL に、w3m コマンドを -dump_source オプションつきでアクセスしてその内容を、フィルタの結果として返しています。
Remove/Via:Body-Filter は、w3m に代えて、curl も使えます。この場合、次のようにします:
Remove/Server:
Remove/X-Powered-By:
--- 見せたくないヘッダを削除して、
++
Output-Header:Server: %{SERVER_SOFTWARE}
--- DeleGate の Server ヘッダに挿げ替えます。