プロが教えるわが家の防犯対策術!

.htaccessでwwwなしのサイトにリダイレクトをかけたいのですが、うまくいきません。
色んな方法がサイトにありそれを試しているのですが、
一瞬テストでうまくいったと思ったのですが、それ以降うまくいかなくなってしまいました。
使用しているプロバイダはさくらインターネットです。

今までに試したコマンドは下記です。

---------------------------
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.hoge\.com)(:80)?
RewriteRule ^(.*) http://hoge.com/ [R=301,L]
</IfModule>
---------------------------
RewriteEngine on
RewriteCond %{HTTP_HOST} www¥.hoge¥.com
RewriteRule .* http://hoge.com%{REQUEST_URI} [R=301,L]
---------------------------

.htaccess を設置しているディレクトリは
/home/hoge/www

になります。
ぜひ教えていただけないでしょうか。よろしくお願いいたします。
また、.htaccessは変更してどのくらいで反映されるのか、補足的に教えていただけると助かります。
以上、よろしくお願いいたします。

A 回答 (1件)

「さくらインターネットのサーバーコントロールパネル」のドメイン設定で「wwwを付与せずマルチドメインとして使用する」にチェックは入っていませんか。


301リダイレクトする場合は「マルチドメインとして使用する(推奨)」にチェックを入れないと「.htaccess」が反映されないようです。

それと、^(www.hoge\.com)(:80)?の「www.」にもエスケープしてみてはいかがでしょうか。「www.」を「www\.」へ。細かいところだと、「UTF-8で保存しているか」「パーミッションは604や644になっているか」などですかね。

記述方法は何通りかあるようですので、見つけたコードを片っ端から試してみるということも何だかんだ有効ですよ。


私のブログで実行している301リダイレクトは以下の通りです。URLの正規化ではなく移転のためのリダイレクトですけど。
ご参考までに、同じくさくらサーバーです。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^hoge\.sakura\.ne\.jp
RewriteRule (.*) http://hoge.jp/ [R=301,L]


301リダイレクトがうまくいっているかどうかを確認するために、Webサービスを利用すると安心できると思います。「View HTTP Request and Response Header」がおすすめです。

http://web-sniffer.net/

リダイレクト元のURLを入れて「Status」が「301 Moved Permanently」となったら成功しています。


反映時間ですが、当環境では.htaccessのアップロードと同時にリダイレクトが反映されました。

どうしてもうまくいかない場合は、「link rel="canonical"」というURL正規化タグがありますのでHTMLに記述してみてはどうでしょうか。

以上、回答となります。
    • good
    • 0
この回答へのお礼

早速の返信ありがとうございました。マルチドメイン設定が原因でした。
おかげでちゃんとリダイレクトききました。
またwebツールを教えて下さってありがとうございます。
本当に助かりました!

お礼日時:2012/10/31 00:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!