トップページへ

mod_rewriteの動作を確認する方法

小粋空間 » 自宅サーバ » Apache » mod_rewriteの動作を確認する方法

mod_rewriteの動作を確認する方法を紹介します。

1.はじめに

mod_rewriteはウェブサーバApacheのモジュール機能の1つで、アクセスしたURLを指定したルールにしたがって書き替えることができます。

参考:Apache Module mod_rewrite

このエントリーでは.htaccessに追加したmod_rewriteの動作を確認する方法を紹介します。

なお、httpd.confの下記の1行が有効になっていることが前提です(直前に有効にした場合、Apacheの再起動が必要)。

LoadModule rewrite_module modules/mod_rewrite.so

2.mod_rewriteを有効にする

mod_rewriteを有効にするには、.htaccessに次のRewriteEngineディレクティブを追加します。

RewriteEngine on

上のようにRewriteEngineディレクティブをonにすることで.htaccessのあるパスでmod_rewriteが有効になります(デフォルトはoff)。

3.mod_rewriteでURLを書き換える

URLを書き換えるには、サンプルとして次のRewriteRuleディレクティブを、RewriteEngineディレクティブの次の行に記述します。

RewriteRule (.+)\.html$ /$1.php [L]

このディレクティブでは、

http://user-domain/test.html

にアクセスすると、

http://user-domain/test.php

に読み替えて実行します。

(.+)\.html$

は正規表現で拡張子が「.html」の拡張子以外の部分を$1に保持します。

/$1.php

が実際にアクセスするURLになり、サンプルでは$1の部分が「test」に置き換わります。

またパス「/」はドキュメントルートを示します。

アクセスURLが

http://user-domain/test/test.html

という風にサブディレクトリがあり、

http://user-domain/test/test.php

の内容を表示させたい場合は、

RewriteRule (.+)\.html$ /test/$1.php [L]

という風に、ドキュメントルートからのパス「test/」を追加する必要があります。

また、[L]は定義の最終行を意味し、これ以降のRewriteRuleディレクティブは無視することを意味します。

« 前の記事へ

次の記事へ »

トップページへ