.htaccessで既存のリライトルールにリダイレクト設定を追加する方法
WebサイトのパフォーマンスやSEOにおいて、URLのリダイレクトは重要な役割を果たします。
特に、Apacheサーバーを使用している場合、.htaccess ファイルを使ってリダイレクトを設定するのが一般的です。
今回は、既にリライトルールが記述されている
.htaccess に新しいリダイレクト設定を追加する方法について解説します。
既存の .htaccess のリライトルール
まず、よくある .htaccess のサンプルを確認しましょう。
このファイルには、WordPressなどでよく使われる基本的なリライトルールが含まれています。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
このコードの内容は、Apacheのリライトエンジンを有効にし、index.php が直接アクセスされた場合や、
実在しないファイルやディレクトリへのアクセスを
index.php にリライトするという基本的な機能を提供します。
リダイレクト設定を追記する
例えば、/samplpe01/ にアクセスしたユーザーを /sample02/にリダイレクトしたい場合、
既存のルールを変更せずに、次のようにリダイレクト設定を追記できます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
# 新しいリダイレクトルール
RewriteCond %{REQUEST_URI} ^/sample01/?$
RewriteRule ^ /sample02/ [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
コードの解説
RewriteEngine On
Apacheのリライトエンジンを有効にします。
これは、URLの書き換えやリダイレクトを行うために必要な設定です。
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
認証ヘッダーを渡す設定です。APIや認証機能を使用している場合に使われることが多いです。
RewriteBase /
リライトの基準となるパスを設定します。通常、ドメインのルートディレクトリに設定します。
新しく追加されたリダイレクトルール
RewriteCond %{REQUEST_URI} ^/sample01/?$
これは、ユーザーが /sample01/ にアクセスしたときにリダイレクトの条件を満たす設定です。
スラッシュの有無を考慮しています。
RewriteRule ^ /sample02/ [R=301,L]
/ へのアクセスを sample01// にリダイレクトします。sample02/R=301 は恒久的なリダイレクトを意味し、L はこれ以上ルールを適用しないという意味です。
RewriteRule ^index.php$ – [L]
index.php へのアクセスをそのまま通す設定です。
ewriteCond %{REQUEST_FILENAME} !-f と RewriteCond %{REQUEST_FILENAME} !-d
実在するファイルやディレクトリにはリライトを適用しない設定です。
RewriteRule . /index.php [L]
ファイルやディレクトリが存在しない場合、すべてのリクエストを index.php にリダイレクトします。
WordPressなどのフレームワークでは、このルールを使って内部ルーティングを処理します。
リダイレクトの重要性
リダイレクト設定は、ユーザーエクスペリエンスの向上や、SEOでの評価を高めるために非常に重要です。
特に、古いURLを新しいURLに適切にリダイレクトすることで、
検索エンジンに正しい情報を提供し、不要な404エラーを防ぐことができます。
まとめ
今回の例では、既存の .htaccess ファイルに簡単なリダイレクト設定を追記しました。
実際の環境に応じてカスタマイズが必要な場合もありますが、基本的な考え方は同じです。
リダイレクトやリライトルールは、WebサイトのパフォーマンスとSEOに大きく影響を与えるため、
慎重に設定することが重要です。
Webサイトの運営や開発に役立つリダイレクトの知識を活用し、
ユーザーに最適なサイト体験を提供しましょう。


.htaccessで「/about/slug/ → /about/slug.html」にリダイレクトする方法
8月 28, 2025.htaccessで特定のディレクトリにアクセスしたときに別URLへリダイレクトさせる方法【実例つき】
8月 5, 2025PHPのhttp_response_code(200);とは?
2月 18, 2025