Apache : mod_rewriteでURL書換え

Facebooktwittergoogle_plusmail

WordPressでサイトを運用していると.htaccessにURL書換えルールを追加したりするのですが、事情でhttpd.confに直接記述する必要ができたのでそのメモ書き。

テスト環境は下記です。
・CentOS release 6.5 (Final)
・Apache/2.2.15 (Unix)

当然ながらmod_rewriteを有効にしておく必要があります。


mod_rewriteは機能が豊富ですべてを理解できません(^^;
今回は簡単なURLの書換えです。
http://www.rootlinks.net/Old_Link/
http://www.rootlinks.net/Old_Link/index.html

http://www.rootlinks.net/New_Link/index.html
に書換えます。

/etc/httpd/conf/httpd.confのDirectoryディレクティブにURL書換えルールを追加します。

今回はすでに以前のOld_Linkは削除して存在しないのでR=301(恒久的に移動)に設定しています。

書換えルールが正常に動作しない場合はログ出力を設定して確認するのがいいと思います。
ただしこのログ出力設定はhttpd.confかバーチャルホストでの記述のみ有効で.htaccessには記述できません。.htaccessに記述した場合はInternal Server Errorになります。

ログはレスポンスを低下させるので、正常に動作することが確認できたら、必ずコメントアウトして無効にします。
ログを出力するとこんな感じで確認することができます(一部抜粋)

ちなみに/var/www/html/.htaccessに記述した場合は下記になります。

ログはこんな感じになりました(一部抜粋)

Leave a Reply