Apache 1.3 と mod_layout 3.2 と Mailman

前回 の続き。 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>

今度はうまくいった。

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

コメントを書く

Your email is never shared. * 印の項目は必須項目です。

*
*