2026年9月13日
2026年9月13日
NginxでwwWなし→ありにリダイレクトする方法
はじめに
WordPressサイトで「wwWなし」のURLから「wwWあり」へのリダイレクトを行う場合、Nginxを使用して自動的にリダイレクトさせる設定が必要です。これにより、検索エンジンからの重複コンテンツの懸念を軽減し、ユーザーが常に同じサイトを訪問できるようになります。
症状・背景
- サイトにアクセスする際、「http://example.com」から「http://www.example.com」への自動リダイレクトが必要な場合。
- 検索エンジンからの重複コンテンツの警告を避ける必要がある場合。
- 一貫性のあるURLを使用して、サイトのユーザーエクスペリエンスを向上させる必要がある場合。
手順・設定方法
ステップ1: Nginxコンフィギュレーションファイルを開く
# Nginxのコンフィギュレーションファイルを開きます。
sudo nano /etc/nginx/sites-available/example.com
ステップ2: リダイレクトルールを追加する
# 既存のserverブロック内に以下のリダイレクトルールを追加します。
server {
listen 80;
server_name example.com www.example.com;
if ($host = 'example.com') {
set $rule_01 1;
}
if ($host = 'www.example.com') {
set $rule_02 2;
}
if ($rule_01 = '1') {
rewrite ^(.*)$ http://www.example.com/$1 permanent;
}
}
ステップ3: 複数のサーバーニームをサポートする
# サポートする他のドメイン名も追加します。
server {
listen 80;
server_name example.com www.example.com;
if ($host = 'example.com') {
set $rule_01 1;
}
if ($host = 'www.example.com') {
set $rule_02 2;
}
if ($rule_01 = '1') {
rewrite ^(.*)$ http://www.example.com/$1 permanent;
}
}
ステップ4: ファイルを保存し、Nginxを再読み込みする
# 変更を保存し、Nginxを再読み込みして新しい設定を適用します。
sudo nginx -t
sudo systemctl reload nginx
注意事項
- 既存のNginx構成ファイルが複雑な場合は、バックアップを取ること。
- 複数のドメイン名をサポートする場合も同様にリダイレクトルールを追加すること。
- リダイレクトはパフォーマンスに影響を与える可能性があるため、必要性を検討すること。
まとめ
1. Nginx設定ファイルを開く: /etc/nginx/sites-available/example.com を編集します。
2. リダイレクトルールを追加する: if ($host = 'example.com') { ... } のような条件分岐を使用してリダイレクトルールを記述します。
3. ファイルを保存し、Nginxを再読み込みする: 修正後に Nginx を再読み込みすることで新しい設定が適用されます。
関連記事: