Htaccessリダイレクトジェネレータ
ブログを移行したり、URLスキーマを変更したり、古いページを統合するたびに、Apacheの.htaccessファイルがすべての整理作業の主な負担を担います。このジェネレータは、シンプルなソースとターゲットの対応関係を、適切なフラグを含む正しいRewriteRuleディレクティブに変換し、サイト内の.htaccessファイルに直接適用できる状態にします。
リダイレクトルールを生成する方法
-
1
リダイレクトの種類を選択してください
301はSEOに適した移行用の恒久的なリダイレクト、302はA/Bテストや季節ごとのリダイレクト用の一時的なリダイレクトです。
-
2
ソースとターゲットを入力してください
正確なパスまたは正規表現パターン。古いパスがRewriteRuleのパターンに、新しいURLがリダイレクト先になります。
-
3
フラグを確認
各ルールには自動的に正しいフラグ(`[R=301,L]`または`[R=302,L]`)が付き、そのままmod_rewriteで動作します。
-
4
ディレクティブをコピー
生成されたブロックは、.htaccessファイルの`<IfModule mod_rewrite.c>`セクション内に配置されます。
mod_rewrite と mod_alias のディレクティブ
Apacheではリダイレクト用に2つのモジュールを提供しています。ルールの複雑さに応じて選択してください。
選択ガイド
| 要件 | 使うもの | 例 |
|---|---|---|
| 正確な旧URL → 正確な新URL | Redirect |
Redirect 301 /old /new |
| ワイルドカードのプレフィックス | RedirectMatch |
RedirectMatch 301 ^/blog/(.*)$ /articles/$1 |
| クエリ文字列の一致 | RewriteRule |
下記を参照 |
| HTTPSを強制する | RewriteRule |
RewriteCond %{HTTPS} off + ルール |
| 条件付き(ブラウザ、クッキー) | RewriteRule |
RewriteCond と併用 |
例:wwwでHTTPSを強制する
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
例:/blog/post-123 を /articles/post-123 に移動します
RewriteEngine On
RewriteRule ^blog/(.*)$ /articles/$1 [L,R=301]
よく見るフラグ
L、最後のルール。それ以降のルールは処理しない。R=301またはR=302、そのステータスコードでリダイレクトする。NC、大文字・小文字を区別しない。QSA、元のクエリ文字列を新しいURLに追加する。NE、ターゲット内の特殊文字を再エンコードしない。
よくある間違い
RewriteEngine Onを忘れる、これがないとRewriteRuleは一切効果を持ちません。- 既定で302を使う、Googleは一時的とみなすため、旧URLが順位を保持し続けます。
- 連鎖リダイレクト(旧 → 中間 → 最終)、常に1回のホップで完結させることを目指してください。ホップが増えるたびにリンク評価が失われ、遅延も増加します。
よくある質問
恒久的な移行(サイトの移設、URLスラグの変更、HTTPSへのアップグレード)には301を使用してください。メンテナンスページへのルーティングやA/Bテストなどの一時的な状況には302のみを使用してください。検索エンジンは301でランキング情報を転送しますが、302では信頼性に欠ける場合があります。
最も一般的な原因は、パターン内の先頭のスラッシュを忘れることです。RewriteRuleでは、パターンは先頭のスラッシュを含まないパス(例:^blog/)と一致しますが、Redirect(mod_alias)ではパターンはスラッシュで始まります(例:/blog)。これら2つの規約を混同してはいけません。
はい、RewriteRuleの前にRewriteCond %{QUERY_STRING} ^id=123$を使用してください。単純なRedirectはクエリ文字列を読み取りません。RewriteRuleのみがクエリ文字列と一致できます。
はい、次のリクエスト時にApacheは各リクエストごとに.htaccessファイルを再読み込みします。サーバーの再起動は不要です。何の変化も見られない場合は、ディレクトリのvhostでAllowOverride Allが設定されているか確認してください。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
EditorConfig ジェネレーター
インデントのスタイルとサイズ、改行コード、文字コード、空白ルールを指定して .editorconfig ファイルを生成し、IDE やエディタをまたいで書式を統一できます。
メールアドレス検証ツール
メールアドレスを検証します。RFC 5322構文チェック、MXレコードのライブ確認に加え、ローカル部、ドメイン、長さの詳細を表示します。メールは送信されません。
Markdownチートシート
見出し、リスト、表、コード、リンク、画像、GFM構文を、実際のプレビューとコピーできる例で確認できる実用的なMarkdownリファレンスです。
このツールは他の言語でも利用できます
- مولد إعادة توجيه Htaccess [AR]
- Htaccess-omdirigeringsgenerator [SV]
- Gerador de Redirecionamento Htaccess [PT]
- ตัวสร้าง Redirect สำหรับ Htaccess [TH]
- Htaccess 리다이렉트 생성기 [KO]
- Generator Redireksi Htaccess [ID]
- Htaccess-redirectgenerator [NL]
- Generator przekierowań .htaccess [PL]
- Générateur de redirection Htaccess [FR]
- Bộ tạo đường dẫn chuyển hướng Htaccess [VI]
- Htaccess Weiterleitungs-Generator [DE]
- Generador de redirección Htaccess [ES]
- Htaccess重定向生成器 [ZH]
- Htaccess Redirect Generator [EN]
- Generatore di Redirect Htaccess [IT]
- Генератор перенаправлений для Htaccess [RU]
- Htaccess Yönlendirme Oluşturucu [TR]