.htaccessで特定のディレクトリにアクセスしたときに別URLへリダイレクトさせる方法【実例つき】
Webサイト運用中、「このディレクトリにアクセスされたら、
別サイトにリダイレクトしたい」という場面は意外と多くあります。
この記事では .htaccess を使って、特定のディレクトリへのアクセスを別のURL(今回は https://teach.web-represent.link/)へ転送する方法をわかりやすく解説します。
こんなときに使える!
- 特定のキャンペーン終了後、関連ページを本サイトのトップに誘導したい
- 古いコンテンツへのアクセスを新しいドメインへ誘導したい
- 一時的にディレクトリごとアクセスを閉じたいときに別ページへ案内したい
実装方法(.htaccessを使ったリダイレクト)
まずは基本の書き方を紹介します。
たとえば /staff/ ディレクトリにアクセスした場合に、https://teach.web-represent.link/ にリダイレクトする場合は以下のように記述します。
【例①】mod_rewriteを使う方法(推奨)
RewriteEngine On
# /staff/ 以下へのアクセスを https://teach.web-represent.link/ へリダイレクト
RewriteCond %{REQUEST_URI} ^/staff/
RewriteRule ^.*$ https://teach.web-represent.link/ [R=301,L]
【例②】簡易的なRedirect(mod_alias)
Redirect 301 /staff/ https://teach.web-represent.link/
記述する場所
.htaccess ファイルは通常、Webサイトのルートディレクトリ
(WordPressなら public_html や htdocs など)にあります。
既存の記述がある場合は、以下のように # BEGIN WordPress より上に追記するのが推奨です。
# 独自のリダイレクト設定
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/staff/
RewriteRule ^.*$ https://teach.web-represent.link/ [R=301,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
...
</IfModule>
# END WordPress
リダイレクトの動作確認方法
.htaccessをアップロードまたは更新- ブラウザで
https://あなたのドメイン/staff/にアクセス https://teach.web-represent.link/に転送されれば成功!
キャッシュの影響で即時反映されないことがあるため、
ブラウザのシークレットモードやキャッシュクリアをお試しください。
補足:ディレクトリごとリダイレクトする場合
ディレクトリ直下だけでなく、その配下もすべてリダイレクトしたい場合は、以下のように記述します:
RewriteCond %{REQUEST_URI} ^/staff/
RewriteRule ^staff/.*$ https://teach.web-represent.link/ [R=301,L]
まとめ
| 設定内容 | 記述例 |
|---|---|
| 特定ディレクトリの転送 | /staff/ → https://teach.web-represent.link/ |
| 推奨方法 | mod_rewrite で柔軟な条件付き設定 |
| 確認方法 | 該当ディレクトリにアクセスしてリダイレクト動作を確認 |
おまけ:複数ディレクトリをまとめてリダイレクトしたい場合
RewriteCond %{REQUEST_URI} ^/(staff|campaign|old-page)/
RewriteRule ^.*$ https://teach.web-represent.link/ [R=301,L]
参考URL
- Apache公式 RewriteRule ドキュメント
- https://teach.web-represent.link/ ← 今回のリダイレクト先URL


.htaccessで「/about/slug/ → /about/slug.html」にリダイレクトする方法
8月 28, 2025PHPのhttp_response_code(200);とは?
2月 18, 2025Apacheでキャッシュを無効化する方法
9月 15, 2024