.htaccess
によるURL書き換えを有効にするには
MAMP環境でApacheのURL書き換え機能「mod_rewrite」を利用するには、いくつかの設定変更が必要です。本記事では、macOS上のMAMPでmod_rewriteを有効にする手順をわかりやすく解説します。
mod_rewriteとは?
Apacheのモジュールの一つで、URLの書き換え(リダイレクトやクリーンURL化)を実現するための機能です。
例:
localhost/sample.php?id=123
↓
localhost/sample/123
WordPressやLaravelなど、さまざまなCMS・フレームワークでもこのモジュールを利用しています。
1. httpd.conf でmod_rewriteを有効化
MAMPのApache設定ファイルを編集します。
手順
- 以下のファイルを開きます:
/Applications/MAMP/conf/apache/httpd.conf
- 次の行を探します:
#LoadModule rewrite_module modules/mod_rewrite.so
- 先頭の
#
を削除して、コメントアウトを解除します:
LoadModule rewrite_module modules/mod_rewrite.so
2. .htaccess を有効にするための設定
mod_rewrite は .htaccess
ファイルと組み合わせて使われることが一般的です。これを有効にするために、AllowOverride
の設定を All
に変更します。
手順
httpd.conf
の中から、以下の <Directory>
ブロックを探します:
<Directory "/Applications/MAMP/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AllowOverride None
を AllowOverride All
に修正します:
<Directory "/Applications/MAMP/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
3. Apacheを再起動する
設定変更を反映させるには、MAMPの管理画面からApacheを再起動する必要があります。
4. 動作確認(.htaccess)
テスト用に以下のような .htaccess
ファイルを作成し、プロジェクトディレクトリに配置します。
RewriteEngine On
RewriteRule ^hello$ hello.php [L]
http://localhost/yourproject/hello
にアクセスして hello.php
が実行されれば成功です。
まとめ
手順 | 内容 |
---|---|
1 | httpd.conf の mod_rewrite を有効化(コメント解除) |
2 | .htaccess を使うために AllowOverride All に設定 |
3 | Apache を再起動 |
4 | 動作確認用 .htaccess を設置 |
コメント