RewriteEngineをONにした時のInternal Server Errorへの対処方法
今回の記事は、.htaccessにてRewiteEngineをONにした時のInternal Server Errorへの対処についてです。
GCP(Google Cloud Platform)にて、インスタンスを生成し、apache2をインストール後、ウェブサーバーを構築していました。
しかしながら、.htaccessファイルによってアクセス制御を行うためRewiteEnginをONにしたところ、以下のような画面が現れ、80番ポートから構築したサイトの画面を見れなくなってしまいました。
動かした環境情報は以下の通りです。
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
簡単に「Internal Server Error」エラーが解決できましたので、その手順を紹介させていただきます。
「rewrite.load」の有無を確認
まず、以下のコマンドを実行して、/etc/apache2/mods-enabled配下のファイルを確認します。
$ ls /etc/apache2/mods-enabled
表示された結果を見て、「rewrite.load」がなければ、rewriteモジュールが有効になっていないので、これを有効にする必要があります。
rewriteモジュールを有効化
rewriteモジュールを有効化するには、以下のコマンドを実行します。
$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
systemctl restart apache2
コマンドを実行し、成功すればrewriteモジュールが有効になったというメッセージが現れます。
そして、apache2の再起動を要求されるので、指示通りに以下のコマンドを実行し、apache2を再起動します。
$ sudo systemctl restart apache2
apache2を再起動した後、以下のコマンドをもう一度実行して、/etc/apache2/mods-enabled配下のモジュールを確認します。
$ ls /etc/apache2/mods-enabled
以下の画面のように、「rewrite.load」という名前が見えればrewriteモジュールが有効化されています。
ここまでの作業を完了してrewriteモジュールが有効化されることで、.htaccessによるRewriteEngineが機能するようになります。
.htaccessが正常に働いているか確認してみましょう。
以上で、.htaccessにてRewiteEngineをONにした時のInternal Server Errorへの対処手順は全て終了です。
最後までご覧いただき、ありがとうございました。
関連記事