
ModRewrite のルールと条件について少し調べてみましたが、求めている効果を実現する満足のいくルール/条件のセットを見つけることができませんでした。
基本的に、ドメインAにディレクトリがあります(http://www.domaina.com/dir/)をドメインBの別のディレクトリにリダイレクトしたい(http://www.domainb.com/diff_dir/)。
ユーザーが domaina の /dir/ にアクセスしようとしている場合にのみ、書き換えルールを適用することに注意してください。ユーザーが別のディレクトリまたはルートにアクセスしている場合は、URL を書き換えたくありません。
ありがとう!
答え1
ドメイン構成の場合:
#redirect everything under dir to the same location under domainb.com/diff_dir
RewriteRule ^/dir/(.*)$ http://www.domainb.com/diff_dir/$1 [r=301]
#redirect url http://www.domaina.com/dir to http://www.domainb.com/diff_dir
RewriteRule ^/dir(/)?$ http://www.domianb.com/diff_dir [r=301]
これはテストしていませんが、動作するはずです。
注:
ルート .htaccess ファイルまたは特定のディレクトリ設定でこれを行う場合は、先頭の '/' を削除するか、ルール パターンを調整する必要があります。たとえば、^dir(/)?$
.