当ブログはblosxom.cgiを使わせて頂き構築しているのですが、そうするとホームページのURLが標準では~/cgi-bin/blosxom.cgiとなります。もちろんこれでも問題は無いわけですが、URLを紹介するときに長くなるしなんとなくスマートではない。っつーわけで、自室にこもる時間が長くなる時節柄、ちょっと時間を掛けて当ホームページから/cgi-bin/~.cgiを隠してみました。
.cgiを隠す
WEBサーバの/cgi-bin/.htaccessに下記構文を追記して、.cgiなしのリクエストを.cgiがあるものとして処理させます。(blosxomへのリクエストがblosxom.cgiへのリクエストとして処理され、結果URLから.cgiが見えなくなる)
/cgi-bin/.htaccess
AddType application/x-httpd-cgi .cgi
MultiviewsMatch Handlers
Options +MultiViews
/cgi-bin/を隠す
単純に、/cgi-bin/を/jq3btu/にrenameしました。webソース内の色々な箇所に/cgi-bin/の記載があるため、全て書き換えて完成と思ったら、blosxomのページ切り替えのプラグインpaginateが拡張子なしに対応していないようで不具合を起こしてしまいました。カテゴリ分けした表示をしてる状態でページ切り替えをする時にpaginateリンク先URLが異常となって誤動作を起こすようで、paginateの改良。これはソースを解析するのちょっと時間が掛かりました。簡単な正規表現を追加しただけですが、正規表現が苦手な私はまたここでちょっと勉強・・・
paginate
$prev_url = url(-path_info=>1,-query=>1);
$prev_url =~ s|$blosxom::url||; # 追加 拡張子なしのアクセスでの不具合対応
$prev_link = fill_template('paginate_prev_link');
:
$curr_url = url(-path_info=>1,-query=>1);
$curr_url =~ s|$blosxom::url||; # 追加 拡張子なしのアクセスでの不具合対応
:
$next_url = url(-path_info=>1,-query=>1);
$next_url =~ s|$blosxom::url||; # 追加 拡張子なしのアクセスでの不具合対応
$next_link = fill_template('paginate_next_link');