こんにちはレターズです。いよいよ夏が近づいてきましたね。
さて、そんなある日、とあるサイトが公開されたのですがなぜかトップページ以外アクセスすると全てのページで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サーバーではいろいろと手動設定ができる分、普段のウェブサーバーでは裏側でやってくれていることが未設定だったりするので、気をつけなければいけないと思いました。
フロントもバックエンドも両方ハイブリッドにできる作業スタイルをこれからも突き詰めたいなと思います。