.htaccessの記述方法を教えて下さい。


http://AAA.jp/の内容とhttp://BBB.jp/の内容は同一サーバーにある同じファイルです。
http://AAA.jp/を全てhttp://BBB.jp/で表示されるようにリダイレクトをかけたいのですが、

http://BBB.jp/NNN/MMM/以下のみhttps://AAA.jp/NNN/MMM/で表示させたいのです。


RewriteCond %{HTTP_HOST} ^AAA\.jp
RewriteRule ^(.*)$ http://BBB.jp/$1 [R=301]


上記記述でドメインの転送は出来たのですが、
これだけだと、

https://AAA.jp/NNN/MMM/にアクセスした場合、http://BBB.jp/NNN/MMM/と表示されてしまいます。

そこで、

RewriteRule ^NNN/MMM(.*)$ https://AAA.jp/NNN/MMM$1 [R=301,L]



Redirect permanent /NNN/MMM/$ https://AAA.jp/NNN/MMM/


追記してみたのですが、やはりドメインが転送されhttp://BBB.jp/NNN/MMM/で表示されてしまいます。


NNN/MMM/以下を表示させる時のみhttps://AAA.jp/NNN/MMM/で表示され、それ以外はhttp://BBB.jp/で表示されるには.htaccessをどのように記述すればよいでしょうか?

よろしくお願い致します。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/06/27 16:29:45
  • 終了:2012/06/28 12:23:15

ベストアンサー

id:rouge_2008 No.2

rouge_2008回答回数594ベストアンサー獲得回数3512012/06/28 00:58:51

RewriteCondで除外ディレクトリを指定するといいです。

RewriteEngine on

RewriteCond %{HTTP_HOST} ^AAA\.jp
RewriteCond %{REQUEST_URI} !/?NNN/MMM/?
RewriteRule ^(.*)$ http://BBB.jp/$1 [R=301,L]



【追記】

上記の記述でAAA.jpへのアクセスはAAA.jp/NNN/MMM/以下を除いてBBB.jp/~にリダイレクトされるはずですが、BBB.jp/NNN/MMM/以下へのアクセスをAAA.jp/NNN/MMM/以下へリダイレクトさせるのでしたら、以下の記述も追加してみてください。

RewriteCond %{HTTP_HOST} ^BBB\.jp
RewriteCond %{REQUEST_URI} /?NNN/MMM/?
RewriteRule ^/?NNN/MMM(.*)$ http://AAA.jp/NNN/MMM$1 [R=301,L]

その他の回答(1件)

id:papa-tomo No.1

パパトモ回答回数362ベストアンサー獲得回数1072012/06/27 17:01:16

RewriteCond %{HTTP_HOST} ^AAA\.jp


これがそもそも間違いの元です。BBB.jp → AAA.jpとしたいなら・・・

RewriteCond %{HTTP_HOST} ^BBB\.jp


ですね。

以下、RewriteRuleとRewriteMatchを駆使すれば、したい事が出来るはずです。

他1件のコメントを見る
id:papa-tomo

#先にBBB→AAAの処理を書くのがポイント
RewriteCond %{HTTP_HOST} ^BBB\.jp
RewriteRule ^/NNN/MMM/(.*)$ https://AAA.jp/NNN/MMM/$1 [R,L]

RewriteCond %{HTTP_HOST} ^AAA\.jp
RewriteRule ^/NNN/MMM/ [L] #何もしないのを宣言
RewriteRule ^(.*)$ http://BBB.jp/$1 [R=301]



これでどうでしょう?

2012/06/27 17:50:42
id:papa-tomo

RewriteRule ^/NNN/MMM/ [L] #何もしないのを宣言


これが効かないと、ループになってしまうので、この行が正しく無いのが原因だと思います。

RewriteRule ^/NNN/MMM/.* [L] #何もしないのを宣言

これでもだめですかね?

2012/06/28 09:23:35
id:rouge_2008 No.2

rouge_2008回答回数594ベストアンサー獲得回数3512012/06/28 00:58:51ここでベストアンサー

RewriteCondで除外ディレクトリを指定するといいです。

RewriteEngine on

RewriteCond %{HTTP_HOST} ^AAA\.jp
RewriteCond %{REQUEST_URI} !/?NNN/MMM/?
RewriteRule ^(.*)$ http://BBB.jp/$1 [R=301,L]



【追記】

上記の記述でAAA.jpへのアクセスはAAA.jp/NNN/MMM/以下を除いてBBB.jp/~にリダイレクトされるはずですが、BBB.jp/NNN/MMM/以下へのアクセスをAAA.jp/NNN/MMM/以下へリダイレクトさせるのでしたら、以下の記述も追加してみてください。

RewriteCond %{HTTP_HOST} ^BBB\.jp
RewriteCond %{REQUEST_URI} /?NNN/MMM/?
RewriteRule ^/?NNN/MMM(.*)$ http://AAA.jp/NNN/MMM$1 [R=301,L]

  • id:kamefactory
    パパトモさんご回答ありがとうございます!

    まずはhttp://AAA.jp/を→http://BBB.jp/としたいのです。
    その上で、/NNN/MMM/以下が表示される時のみhttp://AAA.jp/で表示させたいのです。

    わかりにくくて申し訳ございません。

    よろしくお願いします。
  • id:kamefactory
    パパトモさんご回答ありがとうございます!

    試してみましたが、http://AAA.jp/で表示させようとするとリダイレクトループとなり表示されなくなってしまいます。

    http://BBB.jp/は普通に表示されます。

    よろしくお願いします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません