mod_rewriteの動作を確認する方法

mod_rewriteの動作を確認する方法

Posted at August 27,2015 1:11 AM
Tag:[Apache]

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ディレクティブは無視することを意味します。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)