2026年8月25日
2026年8月25日
WordPressの投稿スラッグ変更後にリダイレクトが効かない
はじめに
投稿スラッグとは、投稿URLの最後にある一意な文字列で、SEOやユーザビリティを向上させるために重要です。しかし、WordPressで投稿スラッグを変更した後、古いスラッグから新しいスラッグへの自動リダイレクトが機能しないことがあります。この記事では、その原因と解決策について説明します。
症状・背景
このテーマが必要になる主な場面:
- 投稿のURLを変更した後
- SEOの改善のためにURLを再設計した場合
- ブログ移転やドメイン変更時に古いURLからのアクセス対策として
- カスタムプラグインやテーマによるスラッグ変更後の不具合
手順・設定方法
ステップ1: 301リダイレクトの追加
# 現在の.htaccessファイルをバックアップ
cp .htaccess .htaccess.bak
# 新しいスラッグから古いスラッグへのリダイレクトを追加
echo 'Redirect 301 /old-slug http://yourdomain.com/new-slug' >> .htaccess
ステップ2: プラグインを使用したリダイレクト設定
# Redirectionプラグインのインストールと有効化
wp plugin install redirection --activate
# 管理画面からRedirectionプラグインを設定
curl -X POST http://yourdomain.com/wp-admin/admin.php?page=redirection-options --data 'action=add&from=/old-slug&to=http%3A%2F%2Fyourdomain.com%2Fnew-slug&type=301'
ステップ3: .htaccessファイルのカスタム設定
# .htaccessファイルを開く
nano .htaccess
# 新しいスラッグから古いスラッグへのリダイレクトを追加
echo 'RewriteEngine On' >> .htaccess
echo 'RedirectMatch 301 ^/old-slug$ http://yourdomain.com/new-slug' >> .htaccess
ステップ4: リダイレクトのテストと確認
# カスタムURLをブラウザで開き、HTTPステータスコードが301であることを確認
curl -I http://yourdomain.com/old-slug | grep "HTTP/"
注意事項
- リダイレクトはSEOに影響を与えるため、慎重に行うことが重要です。
- .htaccessファイルを変更する前に必ずバックアップを取ります。
- 既存のリダイレクトルールが存在する場合は、それらと競合しないよう注意してください。
- セキュリティ上の注意: リダイレクト設定はサイトのセキュリティに影響を与える可能性があるため、適切なアクセス管理を行ってください。
まとめ
1. 301リダイレクト: 投稿スラッグを変更した後、古いURLから新しいURLへの移動を効果的に行います。
2. Redirectionプラグイン: 手動での設定が不要で、複数のリダイレクトルールを容易に管理できます。
3. .htaccessファイル編集: カスタムリダイレクトが必要な場合や他の設定と組み合わせる際に便利です。
4. リダイレクトテスト: すべてのリダイレクトが正しく機能していることを確認するため、ブラウザやcurlコマンドでテストを行いましょう。
5. 保守性: リダイレクトルールは時間とともに変更される可能性があるため、定期的にレビューと更新を実施しましょう。
関連記事: