- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マルチドメインでの.htaccessについて)
マルチドメインでの.htaccessについて
このQ&Aのポイント
- 新サイトに引っ越し後、マルチドメイン環境でのリダイレクト方法がうまく行かず困っています。
- 旧サーバはマルチドメインで2つのドメインを使用し、新ドメインには全てのファイルをリダイレクトしたい状況です。
- 現在の設定では、全てのファイルがリダイレクトされてしまいます。素人でも理解できる方法を教えてください。
- みんなの回答 (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/で始まらない、という場合にリダイレクトするというのになるんではないか。 私はこういうディレクトリがバーチャルホストで入れ子になる構成を組んだ事ないので予想です。
お礼
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !(^/ex/) RewriteRule ^$ http://www.new.com/ [R=301,L] よくわからないけどこれでできました。。。 お手数おかけしました。
補足
【最終版】 申し訳ございません。 お礼で記載した内容が間違っていました。 ご指摘いただいた箇所の追加で無事表示できました。 記載例は下記になります。 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !(^/ex/) RewriteCond %{HTTP_HOST} !hoge.com$ RewriteRule $ http://www.new.com/ [R=301,L] ありがとうございました。