HTTPS and WWW Redirect
Drupal Coreやサーバー設定ファイルを変更することなく、HTTPSとWWWプレフィックスのリダイレクトを強制するためのシンプルな設定インターフェースを提供します。
httpswww
インストール
composer require 'drupal/httpswww:^2.1'
概要
HTTPS and WWW Redirectモジュールは、「www」プレフィックスの有無を含む希望のURLフォーマットを設定するための簡単な方法を提供し、HTTPSリダイレクトの強制オプションも備えています。.htaccessファイル、Drupal Coreのコード、またはサーバー設定を変更する必要がありません。
このモジュールはイベントサブスクライバーを使用して受信リクエストをインターセプトし、URLが設定された希望のフォーマットと一致しない場合に301永続リダイレクトを実行します。特定のサブドメインをWWWプレフィックスリダイレクトから除外することをサポートしており、forum.example.comやmail.example.comのような複数のサブドメインを持つサイトに便利です。
信頼されたユーザーがリダイレクトなしでサイトにアクセスできるバイパス権限により、設定変更時のロックアウトシナリオを防ぎ、セキュリティが強化されています。
Features
- すべてのHTTPリクエストをHTTPSにリダイレクトすることでHTTPS専用アクセスを強制
- 301永続リダイレクトでドメインURLからWWWプレフィックスを追加または削除
- 特定のサブドメインをWWWプレフィックスリダイレクトから除外(例:forum、mail、shop)
- 管理者がリダイレクトなしでサイトにアクセスできる権限ベースのバイパスシステム
- 誤ってロックアウトされた場合にアクセスを回復するためのsettings.phpによる緊急オーバーライド
- URLを統合し重複コンテンツを回避するSEOフレンドリーな301永続リダイレクト
- 最適なパフォーマンスのためのキャッシュタグとコンテキストによる適切なキャッシュ処理
Use Cases
セキュリティコンプライアンスのためのHTTPS強制
決済情報を扱うEコマースサイトはHTTPSを使用する必要があります。「HTTPSにリダイレクト」オプションを有効にして、すべてのトラフィックが暗号化されるようにすることで、PCI DSS準拠に役立ち、顧客データを保護します。
SEO URL正規化
検索エンジンはwww.example.comとexample.comを異なるサイトとして扱い、SEOランキングが分散する可能性があります。モジュールを設定して希望のフォーマット(wwwありまたはなし)にリダイレクトし、すべてのリンクを単一の正規URLに統合します。
メインドメインにWWWを持つ複数サブドメインサイト
forum.example.comとshop.example.comのサブドメインを持つ企業サイトで、メインサイトにはwwwを付けたい場合。「WWWプレフィックスを追加」を設定し、除外サブドメインフィールドに「forum, shop」を入力することで、example.comはwww.example.comにリダイレクトされ、サブドメインは変更されません。
開発およびステージング環境のテスト
開発者に「Bypass HTTPS and WWW Redirects」権限を付与することで、本番ユーザーは強制リダイレクトを体験しながら、開発者はリダイレクトなしで様々なURLでサイトをテストできます。
Tips
- ロックアウトを避けるため、リダイレクトを有効にする前に必ず自分に「Bypass HTTPS and WWW Redirects」権限を付与してください
- リダイレクトを有効にする前に、サイトがHTTPS経由でアクセス可能であり、www/非wwwの両方のURLでアクセスできることをテストしてください
- モジュールはブラウザにキャッシュされる301(永続)リダイレクトを使用します - テスト時はブラウザキャッシュをクリアしてください
- 本番用に設定したら、頻繁なリダイレクト変更はSEOに悪影響を与える可能性があるため、追加の変更は避けてください
- サブドメイン除外機能はWWWプレフィックス追加時のみ適用されます - WWW削除時はサブドメインは自動的に正しく処理されます
Technical Details
Admin Pages 1
/admin/config/system/httpswww
HTTPS強制とWWWプレフィックス処理を含む、サイトの優先URLフォーマットを設定します。変更は保存後すぐに有効になります。
権限 2
Hooks 1
hook_help
ヘルプページでモジュールのヘルプテキストを提供
Troubleshooting 4
drush crまたは管理UIですべてのキャッシュをクリアしてください。それでも解決しない場合は、settings.phpに$config['httpswww.settings']['enabled'] = FALSE;を追加して一時的にリダイレクトを無効にしてください。
settings.phpファイルに次の行を追加してください:$config['httpswww.settings']['enabled'] = FALSE; これにより設定がオーバーライドされ、すべてのリダイレクトが無効になり、サイトにアクセスして設定を修正できます。
これは「Bypass HTTPS and WWW Redirects」権限を持っておらず、設定と異なるURLからサイトにアクセスしている場合に発生します。異なるドメインへのリダイレクトによりログアウトされます。変更を行う前にバイパス権限を自分に付与してください。
有効なSSL証明書がインストールされており、サーバーがHTTPSリクエストを提供するように設定されていることを確認してください。リダイレクトを有効にする前に、https://yoursite.comに手動でアクセスしてテストしてください。
Security Notes 3
- 両方の権限は「アクセス制限」としてマークされており、信頼されたロールにのみ付与する必要があります
- 「HTTPS and WWW Redirectsを管理」権限により、ユーザーが他のユーザーをサイトからロックアウトする可能性があります
- settings.phpによる設定オーバーライドは緊急復旧メカニズムを提供しますが、サーバーファイルへのアクセスが必要です