見た目が素敵なURLに変えるための mod_rewrite を xampp で使う方法を解説します。

mod_rewriteでできること

ここに検索でたどり着いた人は Apacheのモジュール mod_rewrite で何ができるかはしってると思いますが念のために例を上げておくと

http://localhost/index.php?user=foo&name=bar

と書く所を

http://localhost/foo/bar.html

と書ける機能です。

foo/bar.html にアクセスすると内部で
index.php?user=foo&name=bar が呼び出されるわけです。

Xamppの設定方法

xampp は既にインストールして使ってる前提で話を進めますのでインストールがまだの方はインストールしてからまた来てください。

1. まずApacheの設定ファイル http.conf を開きます。
自分の環境では[ X:\sugarsync\bin\xampp\apache\conf\httpd.conf ] にありました。

2. モジュールがコメントアウトされてないか確認する

のようになってたら “#” を取って

とします。

3. リライトの規則を書く。
http.conf にどう表示を転送(書き換え?)するか RewriteRule を記述します。

4. xampp を再起動 で完了
http://localhost/foo.html にアクセスして bar.html の内容が表示されればOK!

それでも動かない場合

…とここまではGoogleで [Xampp mod_rewrite] で検索すると解説されてるサイトいっぱい出てきたんですが上記の設定だけではうちの環境では動きませんでした。

色々調べてると

するといいよー。

的な記述をみつけたので

に書き換えてみたけどダメ。

何が悪いのかわからないので、そのまま httpd.conf を眺めたら

な所を見つけたので、これを

に変えて xampp を再起動させたら……動いたーー!!!

動的ページを静的なページ風に出力

最初に上げた例のような動作をするためのRewriteRuleの設定は

ただ、こうすると index.php の中で相対パスの画像などを呼び出していると
http://localhost/img/01.jpg を呼びたいのに http://localhost/foo/img/01.jpg を参照してしまう問題が発生してしまいますので画像などの参照は全て絶対パスを記述するか、もしくは

こうして
http://localhost/foo/bar.html の代わりに
http://localhost/foo-bar.html で我慢するという方法があります。

ただこの方法の場合は引数に”-“を入れると意図しない動作になりますのでその点に注意しないといけませんが。

mod_rewrite は他にも色々と細かい設定ができますので更に知りたい方は参考のページを見るか検索で何か良さげなページを探してください。

参考

mod_rewrite
http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html

mod_rewrite サンプル集/楽
http://tech.bayashi.jp/archives/entry/techweb/2007/001981.html

Apache : mod_rewriteリファレンス – dawgsdk.org
http://blog.dawgsdk.org/weblog/archives/411011

Enable mod_rewrite in windows , WAMP, XAMPP
http://phpcollection.com/mod-rewrite-windows-wamp-xampp/


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Post Navigation