mod_rewriteでblosxom.cgiを隠そうとしたことのまとめ
blosxom.org: URLからCGIのファイル名を隠すを見て、このブログでもやってみようと思ったわけです。
具体的には、http://nodaguti.usamimi.info/blosxom/ にアクセスすれば http://nodaguti.usamimi.info/cgi-bin/blosxom/blosxom.cgi/ を表示するようにするために、まず最初に
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^blosxom(.*)$ /cgi-bin/blosxom/blosxom.cgi$1 [L,QSA]
と書いてみた。 しかし、これだと http://nodaguti.usamimi.info/blosxom/other/ のようにカテゴリごとや年・月ごとの表示はうまくいくものの、 http://nodaguti.usamimi.info/blosxom/other/guide.htm のように個々の記事へアクセスしようとするとなぜか500になってしまう。
その後いろいろ調査した結果、どうやら blosxom.cgi/〜 のような.cgiを含むURLを書き換えるのがうまくいかないようだった。(http://nodaguti.usamimi.info/index.htmlとかの普通のページへの書き換えはうまくいく)
なので、書き換えじゃなくてリダイレクトだとなぜかうまくいくので、今は以下のようにしてしのいでる。
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^blosxom(.*)\.(.*)$ http://nodaguti.usamimi.info/cgi-bin/blosxom/blosxom.cgi$1.$2 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^blosxom(.*)$ /cgi-bin/blosxom/blosxom.cgi$1 [L,QSA]
でもこれだとリダイレクトはされるかわりにロケーションバーに長いほうのURLが表示されちゃうんだよね...
できれば短いhttp://nodaguti.usamimi.info/blosxom/カテゴリ名/記事名.htmの方でリンクして欲しい。
追記(2009/12/27)。結局、blosxom.cgiを隠すのは諦めて、せめてcgi-binディレクトリを隠すだけで妥協することにした。すなわち、
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^blosxom(.*)$ /cgi-bin/blosxom$1 [L,QSA]
こんな感じ。
トラックバックとコメント欄を動くようにした
動いてなかったコメント欄を動くようにした。トラックバックもテストしてないけどたぶん動くだろう。
なぜかコメントを送信すると 500 が返ってくる。しかも、エラーが返ってくるのにきちんと書き込めてる。なんで?
追記。どうやら新規投稿があった時にメールを送る処理でエラーが起きているようだ。とりあえず無効にしてしのいでみる。
サイトリニューアルオープン
ずっとほったらかしにしていたサイトをリニューアル(といってもあまりデザインは変わってないけど)しました。
blosxomを導入したので、これからはまめに更新していこうと思います。まだ整理していない所もありますが、生暖かく見守ってあげて下さい。
About
About Thie Website
時々作ったものを紹介したり、プログラミングについて書いたりするサイトです。Blosxomを使って運営されています。タイトルはロシア語で「学生プログラマー」というような意味ですが、5秒で決めたのであまり深い意味はありません。主にWeb制作周りについて書いていこうと思っていますが、基本的にめんどくさがり屋なので更新頻度はかなり低めです。
License
このWebサイト内で配布されているすべてのファイルは、個別に記載のない限り、クリエイティブ・コモンズ 表示 - 非営利 2.1 日本 ライセンスの元で提供されています。
Environment
ブラウザーは最新バージョンをお使い下さい。古いバージョンで閲覧すると、デザインが多少崩れる可能性があります。また、Internet Explorerでの動作確認は基本的におこなっていないので、ご了承下さい。