VPSサーバーなどで構築されたApacheでSSL接続の時にmod_rewriteが動かなかった。。【解決済み】

こんにちはレターズです。いよいよ夏が近づいてきましたね。

さて、そんなある日、とあるサイトが公開されたのですがなぜかトップページ以外アクセスすると全てのページでNot Foundエラー。。

んん、、これはどうしたことか。。

まずは、パーマリンクを疑いました。

こういうケースだと、パーマリンクを更新し直せば改善することが多かったので、まずはパーマリンクをいったん、基本に戻し、その後再度/%category%/%post_id%/へ戻しました。
ですが、改善されず。。

うーんと悩んでいると、あることを発見。 httpでアクセスしたときはページが表示されるということを。
ということは、おそらくSSLの時だけ何かあり、パーマリンクが動かないんだろうなと。(htaccessの記述が動かないんだろうなと)

そこで、mod_rewrite ssl 動かない というようなワードで検索をしているうちに解決策を見つけました。

解決策はmod_rewriteをSSL接続でも動くようにするということでした

SSH でサーバーに入り、 /etc/httpd/conf/httpd.confにアクセスし下記の箇所を変更(コメントアウトしている行が修正前)

SSLでもmod_rewriteが使えるように設定を変更

Before

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

After

<Directory "/var/www">
    # AllowOverride None
      AllowOverride All
    # Allow open access:
    Require all granted
</Directory>

そしてApacheを再起動します。

Apache再起動

sudo systemctl restart httpd.service

これで解決しました。

感想

VPSサーバーではいろいろと手動設定ができる分、普段のウェブサーバーでは裏側でやってくれていることが未設定だったりするので、気をつけなければいけないと思いました。

フロントもバックエンドも両方ハイブリッドにできる作業スタイルをこれからも突き詰めたいなと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です