前回 の続き。 Apache 1.3 と mod_layout 3.2 にしてみる。 どちらも Debian 公式パッケージ。 Apache の設定はこんな感じ:
<VirtualHost >
ServerName ml.osstech.jp
...
LayoutDefaultHandlers Off
LayoutMerge On
Alias /mailman/images/ /usr/share/images/mailman/
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
Alias /pipermail/ /var/lib/mailman/archives/public/
<Directory /usr/lib/cgi-bin/mailman>
Order Mutual-Failure
Allow From All
LayoutHandler cgi-script
LayoutHeader /mailman-header.html
</Directory>
<Directory /usr/share/images/mailman>
Order Mutual-Failure
Allow From All
</Directory>
<Directory /var/lib/mailman/archives/public>
Order Mutual-Failure
Allow From All
AddDefaultCharset EUC-JP
LayoutHandler text/html
LayoutHeader /mailman-header.html
</Directory>
...
</VirtualHost>
しかし…これだと CGI な URI に PATHINFO が含まれている場合
(例えば /path/to/cgi-script-name/pathinfo
)
に modlayout が機能しない。
何故だぁ!
ソースを hack するのは面倒なので、伝家の宝刀 modrewrite で hack してみる。
以下を追加:
<VirtualHost *>
ServerName ml.osstech.jp
...
RewriteEngine On
RewriteCond %{REQUESTURI} !^/mailman/images/
RewriteRule ^(/mailman/[^/]+)(/.)$ $1 [passthrough,env=PATH_INFO:$2,last]
...
</VirtualHost>
今度はうまくいった。




