WordPressサイトの移転や構成変更に伴い、「特定のURLだけを別ドメイン・別パスへリダイレクトしたい」というケースはよくあります。
本記事では、.htaccess を使ったリダイレクトの基本と実践的な書き方を、WordPress特有の注意点も含めて解説します。
この記事でわかること
.htaccessを使ったリダイレクトの基本- WordPress環境でリダイレクトを書くときの注意点
- サブディレクトリ単位でのリダイレクト方法
- 親(ルート)
.htaccessにまとめて書く方法 - SEOを考慮した 301 リダイレクトの使いどころ
前提:WordPressと.htaccessの関係
WordPressでは、パーマリンクやURLルーティングのために.htaccess に mod_rewrite を使ったルールが自動生成されます。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressリダイレクトの基本(301 / 302)
| 種類 | 用途 |
|---|---|
| 301 | 恒久的なURL変更(SEO評価を引き継ぐ) |
| 302 | 一時的な転送(テスト・期間限定) |
本記事では 恒久移転を前提に 301 リダイレクトを使用します。
方法①:サブディレクトリの .htaccess に書く
サブディレクトリから別ドメイン、別ドメインのサブディレクトサイトへの移転時によく使います。
想定ケース
https://example.com/figma/
↓
https://new-site.com/figma/書き方(/figma/ ディレクトリ内 .htaccess)
<IfModule mod_rewrite.c>
RewriteEngine On
# 管理画面・ログインは除外
RewriteCond %{REQUEST_URI} !^/figma/wp-admin [NC]
RewriteCond %{REQUEST_URI} !^/figma/wp-login\.php [NC]
# /figma/ 以下を別ドメインへ転送
RewriteRule ^(.*)$ https://new-site.com/figma/$1 [R=301,L]
</IfModule>
ポイント
- サブディレクトリ内の
.htaccessではRewriteRuleは そのディレクトリ基準で評価される - WordPressのルーティングより 必ず上に書く
$1を使うことで 末尾パスを維持できる
方法②:親(ルート)の .htaccess にまとめて書く【おすすめ】
複数のサブディレクトリをまとめて移転する場合は、ルートの .htaccess に集約する方法が最も安全・管理しやすいです。
書き方(ドキュメントルート)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^figma/(.*)$ https://new-site.com/figma/$1 [R=301,L]
RewriteRule ^photoshop/(.*)$ https://new-site.com/photoshop/$1 [R=301,L]
RewriteRule ^Illustrator/(.*)$ https://new-site.com/illustrator/$1 [R=301,L]
RewriteRule ^google-workspace/(.*)$ https://new-site.com/google/$1 [R=301,L]
</IfModule>
この方法のメリット
- WordPressの自動上書きの影響を受けない
- 1ファイルで全リダイレクトを管理できる
- サブディレクトリ側のWordPressを完全にスキップできる
- 技術的にもSEO的にも意図が明確
なぜ WordPress より「上」に書く必要があるのか
WordPressは、存在しないURLをすべて index.php にルーティングします。
RewriteRule . /index.php [L]このルールが先に動くと、リダイレクト処理まで到達しません。
リダイレクトは必ず WordPress ルールより先に書く、これは WordPress + .htaccess の鉄則です。
よくある注意点
覚えておきましょう!
① 301はキャッシュされる
ブラウザに強くキャッシュされるため、検証時はシークレットモード推奨。
② 大文字・小文字に注意
たとえば/Illustrator/ と /illustrator/ は別物として扱われる場合があります。
③ BEGIN WordPress 内は触らない
編集すると管理画面操作で上書きされます。
まとめ
.htaccessでのリダイレクトは WordPressより先に書く- 単体ならサブディレクトリ
.htaccess - 複数あるなら 親
.htaccessにまとめる - 恒久移転は 301リダイレクトを使う
WordPress環境では「どこに書くか」「順番」が非常に重要です。
仕組みを理解しておけば、安全かつSEOに配慮したURL移転が行えます。


