Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【Ask_AI】以下のような.htaccessは正しいですか。Redirect permanent / https://www.chomogi.com その他、リダイレクト時にドメインとパスの間のスラッシュが消えて結合されてしまう問題

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

【AIによる回答】

結論から言うと、そのコードは文法としては完全に正解です。記述にミスはありません。

ただし、「何をしたいか」によっては、思わぬトラブル(無限ループなど)を招く可能性があります。状況別に注意点をまとめましたので、ご自身の目的に合っているか確認してみてください。


スポンサーリンク
バッチ処理の自動化スキルは市場価値が高いです。今の自分の単価を調べてみませんか?
顧客常駐はもう嫌だ!社内SEへ転職するなら【社内SE転職ナビ】
Cursor・Claude Code・Codex AIスキルを学ぶなら
環境構築不要!AIエージェント開発を非エンジニアでも即実践【AI Agent Camp】

1. この記述が「正解」であるケース

**「古いドメインから、新しいドメイン(www.chomogi.com)へサイト全体を移転させたい」**という場合です。

  • 動作: old-site.com/abc にアクセスした人を、自動的に www.chomogi.com/abc へ転送します。

  • SEO効果: permanent(301リダイレクト)と書いているため、検索エンジンからの評価も新しいドメインに引き継がれます。


2. 【要注意】無限ループの危険性

もし、この.htaccesswww.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」へ正しくリダイレクトされるはずです!

タイトルとURLをコピーしました