Mojolicious::Liteのルーティング先がnginxで404になる。

nginx+fcgiwrap環境に移行した時にMojolicious::Liteアプリのルーティング先(http://hoge.com/fuga.pl/route)が404なのが解消できなくてはまりました。
confファイルでlocation ~ \.pl$を指定していたのですが、よく考えたら末尾が.plで終わらない限りperlのスクリプトとして処理されないので、location ~ \.pl($|/) で解消しました。
こんな間抜けな理由ではまるのどうにかしたいです。
もともと共用のレンタルサーバでCGIで動かしてたスクリプトをそのまま移行したのと、ちょっと色々あってmorboでもhypnotoadでもPSGIでもなくFastCGIで動かしています。
ほんとはhypnotoadで動かしたいんですが…。

追記(index.plで受ける場合)

        #中略
        location / {
                root /path_to_index/;
                if (!-f $request_filename) {
                        rewrite ^/$ /index.pl last;
                        rewrite ^(.*)$ /index.pl$1 last;
                }
        }

        location ~ ^(.+\.pl)(.*)$ {
                #中略
                fastcgi_index  index.pl;
                fastcgi_param  SCRIPT_FILENAME  /path_to_script/index.pl;
        }
        #中略

もっとスマートな方法があるんだろうなと思いつつ、これしか思いつかなかったので。

コメントを残す

お手数ですが半角数字で計算結果を入力してください。 *