• ベストアンサー

htaccess wwwがあるのとないので同じページを表示させることはできますか?

現在●●.comと■■.comの2つのアドレスを使用していて、 ■■.comをマルチドメインにするため下記をhtaccessに記載しています。 www. ■■.comを追加子ドメインにして ■■.comと同じページを見られるようにするにはどうすればよいでしょうか? # Enable RewriteEngine. RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} (■■.com) RewriteCond %{REQUEST_URI} !^/(■■.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L]

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.4

No.3の回答のとおり   RewriteEngine on   RewriteCond %{HTTP_HOST} ^(www\.example\.com)(:80)? [NC]   RewriteRule ^(.*) http://example.com/$1 [R=301,L] で問題ないハズです(この記述で複数のサーバで動作しています)。www.example.com でアクセスしてきたときだけ「example.com」へRewriteすればいいので(example.comでのアクセスはそのままでかまわない)、No.3の補足のようなor条件は不要です。example.comをRewriteしてしまうと(同じURLなので)循環エラーになりますよ。Apacheが検知してくれればいいですが、検知してくれない循環を書くと本当にLoopしますから注意してください。

daab04
質問者

お礼

ありがとうございました。 なぜかわからないのですが、、 www.​ ■■.comをマルチドメイン設定にして 頂いた記述で、www.​ ■■.comに統一するにしたら インターナルサーバーエラーにならなくなりました。 逆ができない理由はわからないのですが… 同じページ閲覧にできました。感謝です!!

daab04
質問者

補足

記載するとたしかにwww.■■.comでアクセスしても■■.comに強制的に飛ばされるのですが、親ドメインの●●.comを表示してします。 マルチドメインが機能していない状態です。 補足のように記載しても、http://■■.com/www.■■.com/とよくわからないアドレスになってしまう現象が… まだうまくいってないんです。なぜでしょうか…

その他の回答 (3)

noname#100277
noname#100277
回答No.3

RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.■■\.com)(:80)? [NC] RewriteRule ^(.*) http://■■.com/$1 [R=301,L] コレかな?

daab04
質問者

お礼

ありがとうございました。 なぜかわからないのですが、、 www.​ ■■.comをマルチドメイン設定にして 頂いた記述で、www.​ ■■.comに統一するにしたら インターナルサーバーエラーにならなくなりました。 逆ができない理由はわからないのですが… 同じページ閲覧にできました。感謝です!!

daab04
質問者

補足

理想とは違うかたちになってしまいました。 イメージとしては、マルチドメインの■■.comと同じフォルダーを www.■■.comが読みにいけばいいので # Enable RewriteEngine. RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} (■■.com|www.■■.com) RewriteCond %{REQUEST_URI} !^/(■■.com|■■.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] と思うのですがインターナルサーバーエラーになるので…

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

 いずれのURLでも同一のIPアドレスを参照するように、DNSサーバー側の設定になります。  その後、HTTPサーバーでhttpd.confにて<VIRTUALHOST>を設定する。  ただ、SEO上で問題になるときは、 【引用】____________ここから wwwありに統一する場合 RewriteEngine on RewriteCond %{HTTP_HOST} ^hogehoge\.com RewriteRule (.*) http://www.hogehoge.com/$1 [R=301,L] wwwなしに統一する場合 RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.hogehoge\.com RewriteRule (.*) http://hogehoge.com/$1 [R=301,L]  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[ドメインのwwwの有無 - blog in a fog( http://blog.inafog.jp/archives/189 )]より

daab04
質問者

お礼

ありがとうございました

daab04
質問者

補足

ご返答ありがとうございます 試したら インターナルサーバーエラーになりました。 wwwなしに統一して www.■■.comでアクセスしても■■.comアクセスしても 同じページをみせるほうが希望です。 質問の # Enable RewriteEngine. RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} (■■.com) RewriteCond %{REQUEST_URI} !^/(■■.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] の続きに RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.■■\.com RewriteRule (.*) ​http://■■.com/$1​ [R=301,L] 記載したのですがどうでしょうか?

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

RewriteEngine on RewriteCond %{HTTP_HOST} ^■■\.net [NC] RewriteRule .* http://www.■■.net%{REQUEST_URI} [L,R=301] でどうかしら。 ためせないのがちょっと辛いけど。

daab04
質問者

お礼

ありがとうございました

daab04
質問者

補足

お返事ありがとうございます。上記のかたにもお返事を頂いたので お二人のアイディアを両方試したのですがインターナルサーバーエラーになってしまいました。二度書きになっちゃうんですけど… 質問の # Enable RewriteEngine. RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} (■■.com) RewriteCond %{REQUEST_URI} !^/(■■.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] この続きに RewriteEngine on RewriteCond %{HTTP_HOST} ^■■\.com [NC] RewriteRule .* ​http://www.​■■.com%{REQUEST_URI} [L,R=301] を記載したのですがやり方はあっていますか?

関連するQ&A