【AIによる回答】
結論から言うと、そのコードは文法としては完全に正解です。記述にミスはありません。
ただし、「何をしたいか」によっては、思わぬトラブル(無限ループなど)を招く可能性があります。状況別に注意点をまとめましたので、ご自身の目的に合っているか確認してみてください。
1. この記述が「正解」であるケース
**「古いドメインから、新しいドメイン(www.chomogi.com)へサイト全体を移転させたい」**という場合です。
動作:
old-site.com/abcにアクセスした人を、自動的にwww.chomogi.com/abcへ転送します。SEO効果:
permanent(301リダイレクト)と書いているため、検索エンジンからの評価も新しいドメインに引き継がれます。
2. 【要注意】無限ループの危険性
もし、この
.htaccessをwww.chomogi.com自体のサーバーに置こうとしているなら注意が必要です。
何が起きるか: 1.
www.chomogi.comにアクセスする。 2..htaccessが「www.chomogi.comへ行け」と命令する。 3. 再び.htaccessが反応し、「www.chomogi.comへ行け」と繰り返す……。結果: ブラウザに**「リダイレクトの回数が多すぎます」**というエラーが表示されてサイトが見られなくなります。
3. よくある目的別の「おすすめ記述」
もし「ドメイン移転」ではなく、**「同じドメイン内でURLを整えたい」**のが目的であれば、以下の記述の方が安全で一般的です。
A. HTTPからHTTPS(常時SSL化)にしたい場合
以下のコードは「すでにHTTPSでアクセスしている人」を除外するため、無限ループになりません。
Apache
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]B. 「wwwなし」を「wwwあり」に統一したい場合
Apache
RewriteEngine On RewriteCond %{HTTP_HOST} ^chomogi\.com [NC] RewriteRule ^(.*)$ https://www.chomogi.com/$1 [R=301,L]
まとめ
別ドメインからの転送なら: そのままでOKです!
同じサイト内でのSSL化やwww統一なら:
RewriteEngineを使った方法に書き換えるのが安全です。
サイト移行時に
www.chomigo.com/page
から
www.chomogi.com/page
にリダイレクトしたいが、
www.chomogi.compage
にリダイレクトされてしまう。
正しい.htaccessの書き方を教えて
【AIによる回答】
ドメインのスペルが微妙に異なる(chomigo → chomogi)サイト移行ですね。
「
www.chomogi.compage」のように、ドメインとパスの間のスラッシュ(/)が消えてしまうのは、.htaccessの記述で置換後のURLにスラッシュが抜けていることが原因です。用途に合わせて、以下のいずれかの書き方に修正してください。
1. おすすめ:RewriteRule を使う方法
正規表現を使って柔軟に指定できるため、サイト全体の移行によく使われます。
Apache
RewriteEngine On # 元のドメイン(chomigo.com)からのアクセスであることを確認 RewriteCond %{HTTP_HOST} ^www\.chomigo\.com$ [NC] # 新しいドメインへリダイレクト。ドメインの直後に / を入れるのがポイント RewriteRule ^(.*)$ https://www.chomogi.com/$1 [R=301,L]修正のポイント:
www.chomogi.com$1と書いていた場合、$1(パス部分)にスラッシュが含まれないため結合されてしまいます。www.chomogi.com/$1とスラッシュを明示的に入れることで解決します。
2. シンプルな Redirect 構文を使う方法
特定の条件がない場合は、こちらの方が記述が短く済みます。
Apache
# 全てのディレクトリ構造を維持したまま転送 Redirect 301 / https://www.chomogi.com/修正のポイント: 転送先のURLの末尾を
...com/とスラッシュで終わらせる必要があります。
注意点と確認ツール
キャッシュに注意: ブラウザが「古いリダイレクト(失敗したURL)」を記憶してしまい、コードを直しても正しく動かないように見えることがあります。確認時は**シークレットモード(プライベートウィンドウ)**を使うか、ブラウザのキャッシュをクリアしてください。
SSLの有無: 上記の例では
https://としていますが、ご自身の環境に合わせてhttp://かhttps://かを選択してください。これで「www.chomogi.com/page」へ正しくリダイレクトされるはずです!
