mod_perl化した MT での RewriteRule
以前、naoyaさんやいろいろな方が書いていますが、mod_perl/Apache::Register 化すると「重い、遅い」といわれる Movable Typeでも非常に早くなるんですが、標準のインストール方法だと、mt-comments.cgi というのから mt/comment?... とパスも変わり、ページを再構築しないといけません。さらに、古いページテンプレートを使っていると、CGIの名前は直に埋めこみなので、Template を書きかえる必要もあります。こういうとき面倒くさがり屋さんは Apache の Rewrite Engine を使うと便利です。
まずは、apache が Rewrite Engine を使えるかどうかを確認しましょう。mod_rewrite というモジュールになっていますので、httpd -l なり、サーバの設定ファイルをチェックするなりして調べてください。
使えることがわかれば設定です。次のような設定を追加します。
RewriteEngine On RewriteRule ^/cgi-bin/mt.cgi(.*) /mt/app$1 RewriteRule ^/cgi-bin/mt-tb.cgi(.*) /mt/trackback$1 RewriteRule ^/cgi-bin/mt-search.cgi(.*) /mt/search$1 RewriteRule ^/cgi-bin/mt-xmlrpc.cgi /mt/xmlrpc
てな感じです。/cgi-bin/ は環境などにも依存するでしょうから、うまく書きかけてください。(最初 [R,L]をつけていましたが、リダイレクトだとPOST のときに問題がありましたので、[R,L] は外してください)
また、わたしのように古いテンプレートのため直書きになっていた方は
RewriteRule ^/mt/mt-tb.cgi(.*) /mt/trackback$1 RewriteRule ^/mt/mt-comments.cgi(.*) /mt/comments$1 RewriteRule ^/mt/mt-search.cgi(.*) /mt/search$1
も付けておくといいでしょう。テンプレートを書きかえるまでの間しか使えませんが...。わたしのサーバでは、いたるところで RewriteEngine を使っています。
Comments