Studencheskie Programmisty

mod_rewriteでblosxom.cgiを隠そうとしたことのまとめ

Dec 24, 2009

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]

こんな感じ。

    トラックバックとコメント欄を動くようにした

    Dec 18, 2009

    動いてなかったコメント欄を動くようにした。トラックバックもテストしてないけどたぶん動くだろう。

    なぜかコメントを送信すると 500 が返ってくる。しかも、エラーが返ってくるのにきちんと書き込めてる。なんで?

    追記。どうやら新規投稿があった時にメールを送る処理でエラーが起きているようだ。とりあえず無効にしてしのいでみる。

      サイトリニューアルオープン

      Dec 17, 2009

      ずっとほったらかしにしていたサイトをリニューアル(といってもあまりデザインは変わってないけど)しました。

      blosxomを導入したので、これからはまめに更新していこうと思います。まだ整理していない所もありますが、生暖かく見守ってあげて下さい。

        About

        Dec 17, 2009

        About Thie Website

        時々作ったものを紹介したり、プログラミングについて書いたりするサイトです。Blosxomを使って運営されています。タイトルはロシア語で「学生プログラマー」というような意味ですが、5秒で決めたのであまり深い意味はありません。主にWeb制作周りについて書いていこうと思っていますが、基本的にめんどくさがり屋なので更新頻度はかなり低めです。

        License

        このWebサイト内で配布されているすべてのファイルは、個別に記載のない限り、クリエイティブ・コモンズ 表示 - 非営利 2.1 日本 ライセンスの元で提供されています。

        Environment

        ブラウザーは最新バージョンをお使い下さい。古いバージョンで閲覧すると、デザインが多少崩れる可能性があります。また、Internet Explorerでの動作確認は基本的におこなっていないので、ご了承下さい。