Docker Image php:8.1-rc-apacheでApacheのmod_rewriteを有効にする

docker

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 件のコメント:

コメントを投稿

コメントをお待ちしています。