Docker Image php:8.1-rc-apacheでApacheのmod_rewriteを有効にする
21:52
php:8.1-rc-apacheのDockerImageを使っています。public配下のindex.phpにリライトしたかったのですができませんでした。
いろいろ調べて使えるようになったのでその内容を記載します。
モジュールの有効確認
php:8.1-rc-apacheに設定されているApacheのversionは以下の通りです。
Server version: Apache/2.4.54 (Debian)
Server built: 2022-06-09T04:26:43
以下のコマンドでrewrite.loadが存在するかを確認します。
root@475728ae8baa:/# ls -al /etc/apache2/mods-enabled/rewrite.load
lrwxrwxrwx 1 root root 30 Feb 1 12:15 /etc/apache2/mods-enabled/rewrite.load -> ../mods-available/rewrite.load
存在していない場合は、設定を行います。
Dockerfileの設定
Dockerfileに以下のように記述をすることでモジュールを設定することができます。
RUN a2enmod rewrite
.htaccessの設定
.htaccessに以下の記述をします。
RewriteEngine On
RewriteRule ^.*$ index.php [NC,L]
RewriteEngine Onを記述すると、mod_rewriteの機能を有効にできます。
RewriteRule ^.*$ index.php は、正規表現で「^.*$」全てのURLのパスを指定し、そのパスをindex.phpにリライトします。
まとめ
今回はDocker Image php:8.1-rc-apacheでApacheのmod_rewriteを有効にする方法について紹介しました。
理解すると簡単ですが、環境構築は苦手で解決するまでに時間がかかってしまいました。
0 件のコメント:
コメントを投稿
コメントをお待ちしています。