カテゴリー: 開発ツール
.htaccessリダイレクトジェネレーター
Apache用のリダイレクト・書き換えルールを生成
すべてのリクエストをHTTPSに強制し、wwwサブドメインの有無を統一し、末尾のスラッシュを追加・削除し、特定のパスをリダイレクトするApacheの.htaccessスニペットを、フォームに入力するだけで生成します。mod_rewriteの構文もあわせて自動で作成されます。すべてブラウザ内でローカルに生成されます。
.htaccess
RewriteEngine On
# Force HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
# Path redirects
Redirect 301 /old-page /new-page
Redirect 301 /blog/old-post /blog/new-post
このページの処理はすべてブラウザ内で行われます。アップロードは一切ありません。
このツールでできること
Apacheで運用しているサイトでは、よく似たリダイレクトが繰り返し必要になります。すべてのリクエストをHTTPSに強制すること、www有りと無しのどちらか一方を正規の形として統一し、検索エンジンの評価が2つのURLに分散しないようにすること、末尾のスラッシュの有無を統一すること、そしてサイト構成を変更した後に古いパスから新しいパスへ301リダイレクトすることです。それぞれにRewriteCondとRewriteRuleの組が必要で、順序やエスケープを手作業で正しく書くのは間違えやすい作業です。
使い方
- ドメインを入力し、必要なhttpsとwwwのルールを切り替えます。
- 末尾のスラッシュをどう扱うかを選びます。
- 古いパスから新しいパスへのリダイレクトを、1行に1つずつ列挙します。
- 生成されたルールを、サイトの.htaccessファイルにコピーします。
プライバシー
このツールはすべてブラウザ内で動作します。入力した内容がアップロード・保存・共有されることはなく、タブを閉じれば消えます。
よくある質問
- このファイルはどこに置けばよいですか。
- Apacheサイトのルートにある.htaccessファイルに置きます。利用にはmod_rewriteが有効になっている必要がありますが、多くの共用レンタルサーバーや標準的なApacheの構成では既定で有効になっています。
- なぜwwwの形式をどちらかに統一する必要があるのですか。
- www.example.comとexample.comの両方をリダイレクトなしで公開してしまうと、検索エンジンからはページが2つの別々のURLとして認識されてしまいます。一方をもう一方へリダイレクトすることで、リンクや評価を1つの正規のアドレスに集約できます。
- メタタグジェネレーターで作ったcanonicalタグと組み合わせて使えますか。
- はい。リダイレクトによって常に1つのURL形式だけが実際に配信されるようにし、canonicalタグは、古い形式をまだクロールしている検索エンジンに対して同じ優先URLを重ねて伝える役割を果たします。