Loading...
Blog Featured Image

VPSのSSL対応時にTOPページ以外で404エラーが出る

Pocket

httpをhttpsにリダイレクトさせる

さくらVPSでラピッドSSLを購入して、httpsを導入した。それに伴いhttpへのアクセスは全てhttpsに301リダイレクトさせる必要があるが、その過程で少しハマったのでメモ。結論だけ述べると、VPSのhttpd.confファイルで.htaccessが無効になっていた為にトップページより下位ページが全て404になっていた。httpd.confファイルを書き換える事で解決した。

環境:さくらVPS,Apache,Wordpress

.htaccessを有効にする

.htaccessにリダイレクト設定を記述する。

.htaccess内に以下のリダイレクト設定を記述したが404になる。開発者ツールで確認しても301リダイレクトでエラーが起きている形跡がない。

Apacheが.htaccessを無視していると睨み、設定ファイルを確認。

AllowOverrideを許可する

sudo vi /etc/httpd/conf/httpd.confでファイルを編集する。
AllowOverride は、.htaccess による設定の上書きを許可するかを指定する。こちらがnoneになっていたのでAllにして許可する。

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None

参考:もっとhttpd.confの設定

念の為:mod_rewriteを有効にする

mod_rewriteはApacheのモジュール。mod_rewriteを利用することでURLを書き換えやリダイレクトを指定することができる。今回は問題なかったが、上記でもダメな場合はこちらも確認してみてください。

# LoadModule rewrite_module modules/mod_rewrite.so がコメントアウトされている場合は解除
/LoadModule rewrite_module

参考:Apacheのmod_rewriteモジュールの使い方を徹底的に解説
参考:さくらのVPSに導入したWordPressでRSSのFeedや、個別記事のページが404 not foundになったら

※注意

今回はさくらレンタルサーバーで .htaccessでRewriteCond %{HTTPS}を用いたHTTPS接続の判定や、PHPで$_SERVER[‘HTTPS’]を用いたHTTPS接続の判定が行えず.htaccessが正しく行えないケースとは関係ありません。

レンタルサーバーをご利用でhttpsのリダイレクトが正しく行えない場合は以下を読んでみると良いです。

参考:さくらのレンタルサーバでHTTPS(SNI SSL)な独自ドメインのWordpressサイトを構築する際の注意点

Pocket

About Spornia.

スポーツ・ナレッジ・テクノロジーを編集して、
 子どもたちの持つ未来の可能性を拡げることで、
 世界をもっと楽しむ人を増やしていく。

Email:info@sports-pioneer.co.jp

Our Services
  • 研究開発
  • インフラ開発
  • コンテンツ開発