mod_rewriteを使って.htaccessだけで各種ステータスコードを返す

ちょっと503エラーの時の動作を確認したいようなときにお手軽にやる方法です。mod_rewriteを使えばプログラムを書いたりしなくてもいろいろなステータスコードのレスポンスを作れます。

以下サンプル。

.htaccessが使える環境で、次の.htaccessファイルを作りました。

RewriteEngine on
RewriteRule 200 . [R=200,L]
RewriteRule 201 . [R=201,L]
RewriteRule 202 . [R=202,L]
RewriteRule 203 . [R=203,L]
RewriteRule 204 . [R=204,L]
RewriteRule 205 . [R=205,L]
RewriteRule 206 . [R=206,L]
RewriteRule 400 . [R=400,L]
RewriteRule 401 . [R=401,L]
RewriteRule 402 . [R=402,L]
RewriteRule 403 . [R=403,L]
RewriteRule 404 . [R=404,L]
RewriteRule 405 . [R=405,L]
RewriteRule 406 . [R=406,L]
RewriteRule 407 . [R=407,L]
RewriteRule 408 . [R=408,L]
RewriteRule 409 . [R=409,L]
RewriteRule 410 . [R=410,L]
RewriteRule 411 . [R=411,L]
RewriteRule 412 . [R=412,L]
RewriteRule 413 . [R=413,L]
RewriteRule 414 . [R=414,L]
RewriteRule 415 . [R=415,L]
RewriteRule 416 . [R=416,L]
RewriteRule 417 . [R=417,L]
RewriteRule 418 . [R=418,L]
RewriteRule 419 . [R=419,L]
RewriteRule 420 . [R=420,L]
RewriteRule 421 . [R=421,L]
RewriteRule 422 . [R=422,L]
RewriteRule 423 . [R=423,L]
RewriteRule 424 . [R=424,L]
RewriteRule 425 . [R=425,L]
RewriteRule 426 . [R=426,L]
RewriteRule 500 . [R=500,L]
RewriteRule 501 . [R=501,L]
RewriteRule 502 . [R=502,L]
RewriteRule 503 . [R=503,L]
RewriteRule 504 . [R=504,L]
RewriteRule 505 . [R=505,L]
RewriteRule 506 . [R=506,L]
RewriteRule 507 . [R=507,L]
RewriteRule 508 . [R=508,L]
RewriteRule 509 . [R=509,L]
RewriteRule 510 . [R=510,L]

ファイルは手書きでも何でも適当に作ればよいですけど、Perlで作るならこんな感じです。

#!/usr/bin/env perl

use strict;
use warnings;

my @code_list = (
    200 .. 206,
    400 .. 426,
    500 .. 510,
);

print "RewriteEngine on\n";
foreach my $code (@code_list) {
    printf "RewriteRule %d . [R=%d,L]\n", $code, $code;
}