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への対処手順は全て終了です。

最後までご覧いただき、ありがとうございました。

タグクラウド :
apache
debian

関連記事