TutorialLog
2007-4-22
FancyURL の実現方法
Apache を使っている前提で,FreeStyle Wiki の FancyURL (静的URL) を実現する方法です.
Apache には,mod_rewrite と mod_ext_filter が必要です.
mod_ext_filter で sed を介すため,速度は3分の1ほどに低下します.
mod_ext_filter
httpd.conf に次の定義を行います.
ExtFilterDefine fancyurl mode=output cmd="/usr/bin/sed -e 's/wiki.cgi?page=/wiki.cgi\\\//g' -e 's/%2F/\\\//g'"
<Files "wiki.cgi">
SetOutputFilter fancyurl
</Files>
mod_rewrite
httpd.conf に次の設定を加えます.(置き換え先は,実際に Wikiが設置されているパスになります)
<Location />
RewriteEngine On
RewriteRule wiki.cgi/(.*)$ /wiki.cgi?page=$1 [NE]
</Location>
その他
DirectoryIndex に wiki.cgi を設定しておけば,FrontPage の表示がスマートになります.
問題点
Session 管理に使う Cookie の path の問題で,ログイン,ログアウト,ログイン,といった繰り返しを行うと,Session が正しく取得できず,権限の認識がおかしくなる事があります.これを修正するには,ソースコードに直接手を入れる必要があります.
コメント