SSL化に伴い“http”から“https”にリダイレクトする方法

SSL化は現在、WEBサイトには必須の設定になっていますが、さくらサーバやエックスサーバなどではSSL化をしても、httpとhttpsの両方でアクセスしてみると、どちらにもアクセスできる状態になっていることがあります。

※バージョンの違いによるものか、毎回同じ事象になるわけではないようです

そこで、httpから始まるURLでアクセスされたときに、httpsから始まるURLにリダイレクト(転送)する必要があるので、その方法についてこの記事では解説します。

目次

サイト全体で“http”から“https”にリダイレクトする方法

基本的にリダイレクト設定は“.htaccessファイル”を利用した“301リダイレクト”によって対応します。

STEP
.htaccessファイルをエディタで開く

サーバのファイルエディタ機能を使って、WEBサイトのルートディレクトリにある.htaccessファイルをエディタで開きます。ファイルが見つからない場合は、新しく作成することができます。

STEP
リダイレクトのルールを追加

以下のコードを.htaccessファイルに追加します。このコードは、すべてのHTTPリクエストをHTTPSにリダイレクトします。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteEngine Onは、Apacheの書き換えエンジンを有効にします。
RewriteCond %{HTTPS} offは、HTTPSが無効(つまりHTTP接続である)場合にのみ後続のルールが適用されることを意味します。
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]は、URIの開始(^)にマッチ(すなわちすべてのリクエストにマッチ)して全リクエストをHTTPSプロトコルを使用するURLにリダイレクトします。実際のリクエストパスやクエリ文字列は%{REQUEST_URI}で保持されます。リダイレクトは永続的(ステータスコード301)で、ルールの処理をその時点で終了します([L]フラグ)。

STEP
変更を保存してテスト

変更を保存した後、WEBサイトにHTTPから始まるURLでアクセスしてHTTPからHTTPSへのリダイレクトが正しく機能しているかを確認します。

サイト内の一部で“http”から“https”にリダイレクトする方法

次に、サイトの一部分のみを指定して“https”に対応する場合のリダイレクト方法について解説します。

サイト内の特定の部分だけを別の場所に移行する場合の.htaccessを使用したリダイレクトルールの書き方は以下のようになります。ここでは、具体例として、旧URLの特定のパスから新URLのパスへのリダイレクトを設定する方法を説明します。

特定のページのリダイレクト

旧ページから新ページへのリダイレクトを設定するには、以下のように書きます。

apache Redirect 301 /oldpage.html /newpage.html

この例では、/oldpage.html へのアクセスを /newpage.html にリダイレクトします。

ディレクトリ全体のリダイレクト

あるディレクトリから別のディレクトリへのリダイレクトを設定するには、以下のように書きます。

apache Redirect 301 /old-directory/ /new-directory/

この例では、/old-directory/ 内の全てのファイルが /new-directory/ にリダイレクトされます。

より複雑なリダイレクト(mod_rewriteを使用)

mod_rewriteを使用したより複雑なリダイレクトを行う場合は、以下のようになります。

  RewriteEngine On
  RewriteRule ^old-directory/(.*)$ /new-directory/$1 [R=301,L]

このルールは、old-directory 内のすべてのファイルを new-directory にリダイレクトします。(.*)$old-directory 内の任意のファイルやサブディレクトリにマッチし、$1 はそのマッチした部分を表します。

注意点

  • リダイレクトルールを適用した後は、必ずテストを行い、想定通りにリダイレクトされるか確認してください。
  • 301ステータスコードは「永続的なリダイレクト」を意味し、検索エンジンに対してもページが移動したことを伝えます。これはSEOに影響しますので、適切な場面で使用してください。一時的にリダイレクトする場合には302リダイレクトを利用します。
  • Apacheの設定で mod_rewrite モジュールが有効になっている必要があります。すべてのホスティング環境でデフォルトで有効化されているわけではありません。

.htaccessファイルとは?

.htaccessファイルは、Apacheウェブサーバーで使用される強力な設定ファイルです。このファイルを用いることで、サーバー全体の設定を変更することなく、個別のディレクトリやウェブサイトに対して特定の設定を行うことができます。.htaccessファイルによる設定は、そのファイルが存在するディレクトリおよびそのサブディレクトリに適用されます。

主な機能と用途

URLの書き換えとリダイレクト

URLを書き換えたり、特定のページから別のページへリダイレクトさせることができます。ウェブサイトの構造を変更したときや、HTTPからHTTPSへの自動リダイレクトを設定するときに役立ちます。

アクセス制御

特定のIPアドレスからのアクセスを制限したり、パスワードで保護されたディレクトリを作成することができます。

カスタムエラーページ

エラーが発生したときに表示されるページをカスタマイズできます。例えば、404エラー(ページが見つからない)の際に特定のエラーページを表示するよう設定できます。

パフォーマンスの最適化

ファイルの圧縮やキャッシュ設定などを通じて、ウェブサイトのロード時間を短縮する設定を行うことができます。

MIMEタイプの設定

サーバーに対して、特定のファイル拡張子を持つファイルをどのように処理するかを指示することができます。

注意点

  • セキュリティ: .htaccessファイルは非常に強力であるため、誤った設定はウェブサイトのセキュリティやアクセシビリティに悪影響を及ぼす可能性があります。
  • パフォーマンス: .htaccessファイルは、サーバーがリクエストを受けるたびに読み込まれます。不必要に複雑な設定はパフォーマンスに影響を与えることがあります。
  • サーバー設定: すべてのサーバーが.htaccessファイルの使用を許可しているわけではありません。サーバーの設定によっては、.htaccessファイルが無視されることもあります。

まとめ

この記事では、ウェブサイトをHTTPからHTTPSへリダイレクトする方法と、その際の注意点について詳しく説明しました。HTTPSへのリダイレクトは、.htaccessを用いることで比較的カンタンに実現できますが、正しくリダイレクトを行わないと、ウェブサイトの検索エンジンにおける評価が損なわれ、結果として訪問者数が大幅に減少する恐れがありますので、設定後は確実にテストを行ってください。

SSL化は、検索ユーザーにとって信頼できるサイトを構築する上で非常に重要です。この記事を通じて、安全なHTTPSへの移行方法を理解し、ユーザーフレンドリーなウェブサイトを実現しましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

WordPress開発歴6年。
ベンチャー企業のオウンドメディア開発、中古車検索サイトの開発、WooCommerceを用いたECサイト開発、会員登録機能付きのサイト開発、求人検索サイトの開発など、多くのWordPressサイトを開発してきました。MVPではじめて運用に合わせて拡張保守していくスタイルのアジャイル開発が可能なので、100万円程度のご予算でも新規事業開発を立ち上げることが可能です。

目次