Blog ブログ
.htaccessで特定のディレクトリ以下をリダイレクトさせる方法についてまとめました。
「http://aaa.jp/example/」以下のリクエストを「http://bbb.jp/」にリダイレクトさせます。
リダイレクトの条件を
・ドメインによる判定
・ディレクトリによる判定
の2つとして考えます。
ドメインを条件にしたリダイレクト
RewriteEngine on
#aaa.jpからbbb.jpへのリダイレクト
RewriteCond %{HTTP_HOST} ^aaa\.jp$
RewriteRule ^(.*)$ http://bbb.jp/$1 [R=301,L]
「RewriteCond」が条件文です。
基本的には「RewriteCond %変数名 条件」で指定します。
%{HTTP_HOST}がサーバーのホスト名を表します。詳しくは下記を参考にしてください。
https://weblabo.oscasierra.net/apache-rewritecond-base/
このような記述は「www付き」から「wwwなし」のリダイレクト等にもよく使われますね。
RewriteEngine on
#「www付き」から「wwwなし」へのリダイレクト
RewriteCond %{HTTP_HOST} ^www\.example\.jp$
RewriteRule ^(.*)$ https://example.jp/$1 [R=301,L]
ディレクトリを条件にしたリダイレクトと組み合わせる
先ほどのドメインを条件にしたリダイレクトに、ディレクトリの条件を加えます。
RewriteEngine on
#aaa.jp/example/からbbb.jpへのリダイレクト
RewriteCond %{HTTP_HOST} ^aaa\.jp$
RewriteCond %{REQUEST_URI} ^/example/$
RewriteRule ^(.*)$ http://bbb.jp/$1 [R=301,L]
RewriteCondをそのまま下に並べることでAND条件になります。
これで「http://aaa.jp/example/」以下のリクエストを「http://bbb.jp/」へのリダイレクトができました!
まとめ
いかがでしたでしょうか。
今回は使用していませんが、RewriteCondはOR条件なども指定することができます。
RewriteCondを上手く組み合わせることで、様々な条件を実現できそうですね!
カテゴリー
- MHWORKSについて (1)
- サイト制作 (1)