- ベストアンサー
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]
- みんなの回答 (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しますから注意してください。
その他の回答 (3)
RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.■■\.com)(:80)? [NC] RewriteRule ^(.*) http://■■.com/$1 [R=301,L] コレかな?
お礼
ありがとうございました。 なぜかわからないのですが、、 www. ■■.comをマルチドメイン設定にして 頂いた記述で、www. ■■.comに統一するにしたら インターナルサーバーエラーにならなくなりました。 逆ができない理由はわからないのですが… 同じページ閲覧にできました。感謝です!!
補足
理想とは違うかたちになってしまいました。 イメージとしては、マルチドメインの■■.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)
いずれの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 )]より
お礼
ありがとうございました
補足
ご返答ありがとうございます 試したら インターナルサーバーエラーになりました。 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)
RewriteEngine on RewriteCond %{HTTP_HOST} ^■■\.net [NC] RewriteRule .* http://www.■■.net%{REQUEST_URI} [L,R=301] でどうかしら。 ためせないのがちょっと辛いけど。
お礼
ありがとうございました
補足
お返事ありがとうございます。上記のかたにもお返事を頂いたので お二人のアイディアを両方試したのですがインターナルサーバーエラーになってしまいました。二度書きになっちゃうんですけど… 質問の # 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] を記載したのですがやり方はあっていますか?
お礼
ありがとうございました。 なぜかわからないのですが、、 www. ■■.comをマルチドメイン設定にして 頂いた記述で、www. ■■.comに統一するにしたら インターナルサーバーエラーにならなくなりました。 逆ができない理由はわからないのですが… 同じページ閲覧にできました。感謝です!!
補足
記載するとたしかにwww.■■.comでアクセスしても■■.comに強制的に飛ばされるのですが、親ドメインの●●.comを表示してします。 マルチドメインが機能していない状態です。 補足のように記載しても、http://■■.com/www.■■.com/とよくわからないアドレスになってしまう現象が… まだうまくいってないんです。なぜでしょうか…