Web技術を整える
中級.htaccessリダイレクトを整える。
= 旧パス→新パスの 301/302 を、9つの型から選んで生成し、動作確認と誤り検出までする
—
各行の説明
—
このシミュレーターの限界(開く)
「.htaccess」が効く条件(AllowOverride)
.htaccessは、Apacheのサーバ設定(httpd.conf側)でAllowOverrideが
None以外(Allや
個別に許可した項目)になっているディレクトリでだけ読み込まれます。共有レンタルサーバの多くは初期状態で許可されていますが、
VPSや自前構築のApacheではAllowOverride Noneが既定になっている場合があり、
その場合は.htaccessに何を書いても一切反映されません。まずサーバ管理者・ホスティング側の設定を確認してください。
RedirectとRewriteRuleの違い
Redirect / RedirectMatch(mod_alias)はURL-path(先頭スラッシュを含む絶対パス)を対象に、
単純な前方一致(Redirect)か正規表現(RedirectMatch)でパスを判定します。ホスト名や条件分岐(httpsかどうか等)は扱えません。
RewriteRule(mod_rewrite)は正規表現の書き換えエンジンで、RewriteCondと
組み合わせてホスト名・プロトコル・実ファイルの有無などあらゆる条件を判定できます。ただし機能が多い分、書き方を誤ったときの
影響(ループ・意図しない多重書き換え)も大きくなります。単純な1対1の付け替えだけならRedirect、条件分岐が必要ならRewriteRuleという
使い分けが基本です。
301と302の使い分けと検索エンジンへの影響
301(Moved Permanently)は「恒久的に移動した」ことを示し、検索エンジンは新しいURLの評価を引き継ぐ前提で インデックスを更新します。302(Found)は「一時的な移動」を示し、検索エンジンは元のURLをインデックスに 残したまま扱う傾向があります。恒久的なURL変更(スラッグ改名・ドメイン移転など)には301、キャンペーンやA/Bテストなど 期間限定の切り替えには302を使うのが基本です。302を使い続けたまま長期間放置すると、恒久移転のつもりでも評価が 引き継がれない場合があります。
反映確認の方法(curl -I)
.htaccessをアップロードしたら、ブラウザではなくヘッダだけを見るcurl -Iで
確認するのが確実です。例えばcurl -I https://example.com/old-pageを実行し、
レスポンスの1行目がHTTP/1.1 301 Moved Permanentlyとなっているか、
Location:ヘッダが期待する新URLになっているかを確認します。
ブラウザは301の結果をキャッシュすることがあるため、ブラウザだけで確認すると「直したつもりが反映されていない」ように
見えることがあります。curl -Iならキャッシュの影響を受けにくく、
何度でもやり直せます。
よくある事故(ループ・ケース違い・キャッシュ)
- 無限リダイレクトループ — www統一とhttps統一を両方設置したとき、片方の判定条件がもう片方の結果と矛盾すると、 ブラウザが「リダイレクトが多すぎます」というエラーを出すまで転送を繰り返します。1つずつ設置してテストURLで確認してから 次を足すのが安全です。
- 大文字小文字の違い — Linux上のApacheはパスの大文字小文字を区別するため、
/Old-Pageと/old-pageは別物として扱われます。表記ゆれも拾いたい場合はNCフラグ (②)を使います。 - キャッシュに阻まれて反映確認できない — ブラウザ・CDN・プロキシのいずれかが301の結果を長くキャッシュしていると、
.htaccessを直しても古い転送先のまま見えることがあります。上の「反映確認の方法」のとおり
curl -Iで 確認し、それでも古い場合はCDN側のキャッシュパージも検討してください。
🔒 生成も検証も動作確認も、すべてあなたのブラウザの中(純JavaScript)で完結します。入力した内容はサーバには送られません(送信ゼロ)。
このツールについて
旧パスから新パスへの301/302リダイレクトを、Redirect・RedirectMatch・RewriteRuleの9パターンから選んで生成します。生成した内容はテストURLで動作確認でき、貼った.htaccessの中身もよくある間違い(RewriteEngine On漏れ・ループなど)を機械的にチェックできます。入力はこの端末の中だけで処理します(送信ゼロ)。
.htaccess の 301/302 リダイレクトを9つの型から生成し、動作確認と誤り検出までできます。
主な機能
- 単純リダイレクト(Redirect/RedirectMatch)と mod_rewrite 版(RewriteRule・NC/QSA)
- www 統一・https 統一・末尾スラッシュ統一・ドメイン移転・404/410
- ディレクトリ一覧の禁止・ファイル拒否・キャッシュと圧縮の定型
- テスト URL に適用して結果 URL とステータスを確認
- 貼った .htaccess のよくある間違いを検出・送信ゼロ
よくある質問
Q. 301 と 302 はどちらを使えばよいですか?
A. 恒久的な URL 変更(ページ移転・スラッグの改名・ドメイン移転)には 301、期間限定の一時的な切り替えには 302 です。301 は検索エンジンが新 URL に評価を引き継ぐ前提で扱われ、302 は旧 URL の評価が残りやすい点が異なります。
Q. .htaccess を直したのに反映されているか分かりません。
A. ブラウザは 301 の結果をキャッシュすることがあるため、ブラウザだけでは古い結果に見えることがあります。curl -I で対象 URL を叩き、1行目のステータスコードと Location ヘッダを直接確認するのが確実です。
Q. Redirect と RewriteRule はどちらを使えばよいですか?
A. 単純な1対1のパスの付け替えなら Redirect(mod_alias)で十分です。ホスト名や https の判定など条件分岐が必要なら RewriteRule(mod_rewrite)と RewriteCond を組み合わせます。両方を同じパスに混在させると処理順で意図しない結果になることがあるため、どちらかに統一します。
入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。