• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マルチドメインでの.htaccessについて)

マルチドメインでの.htaccessについて

このQ&Aのポイント
  • 新サイトに引っ越し後、マルチドメイン環境でのリダイレクト方法がうまく行かず困っています。
  • 旧サーバはマルチドメインで2つのドメインを使用し、新ドメインには全てのファイルをリダイレクトしたい状況です。
  • 現在の設定では、全てのファイルがリダイレクトされてしまいます。素人でも理解できる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

む? 仮に本サイトがexample.netだとして、 /.htaccess /index.html /staff/ /corp/ /ex/  ←ここだけ別ドメインに設定(仮にhttp://hoge.comとします) これで、 http://example.net/ex/http://hoge.com/ で同じコンテンツが表示されるって事? という事は、 http://example.net/ex/ で来た時は RewriteCond %{REQUEST_URI} !(^/ex/) つまり、「REQUEST_URIが/ex/で始まらない」が真になるけど、 http://hoge.com/ だと真にならないよね。なので、こっちもリライトしない条件に加えてあげないといけない。 結論、 RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^hoge.com$  ←追加 RewriteCond %{REQUEST_URI} !(^/ex/) RewriteRule ^(.*)$ http://www.new.com/ [R=301,L] にするとうまくいくかも。 これで、HTTPリクエストが来たときのホスト名がhoge.comでない、かつ、パス部分が/ex/で始まらない、という場合にリダイレクトするというのになるんではないか。 私はこういうディレクトリがバーチャルホストで入れ子になる構成を組んだ事ないので予想です。

ti_2003_3
質問者

お礼

RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !(^/ex/) RewriteRule ^$ http://www.new.com/ [R=301,L] よくわからないけどこれでできました。。。 お手数おかけしました。

ti_2003_3
質問者

補足

【最終版】 申し訳ございません。 お礼で記載した内容が間違っていました。 ご指摘いただいた箇所の追加で無事表示できました。 記載例は下記になります。 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !(^/ex/) RewriteCond %{HTTP_HOST} !hoge.com$ RewriteRule $ http://www.new.com/ [R=301,L] ありがとうございました。

関連するQ&A