URL正規化や、ディレクトリ構造を変更した場合など、目的別の.htaccessの記載例をまとめました。

設定してもうまくいかない場合は、以下の記事が参考になります。

スポンサーリンク

URLの正規化|常時SSL化

正規化についてはこちらの記事を参考にしてください。

ページ単位でリダイレクト

使用ケース ページを削除した場合、URLを変更した場合
転送元 https://example.com/aaa.html
転送先 https://example.com/bbb.html
RewriteEngine on
RewriteRule ^aaa.html$ https://example.com/bbb.html [L,R=301]

ディレクトリ単位でリダイレクト

ページ単位ではなく、ディレクトリごと転送したい場合の設定になります。

使用ケース ディレクトリ構造を変更した場合(CMS変更など)
転送元 https://example/aaa/post1
転送先 https://example/bbb/post1
RewriteEngine on
RewriteRule ^aaa(.*)$ /bbb$1 [L,R=301]

ドメイン単位でリダイレクト

使用ケース サイトリニューアルでドメインを変更した場合
転送元 https://aaa.com/ページURL
転送先 https://bbb.com/ページURL
RewriteEngine On
Redirect permanent / https://bbb.com/

サイト移転に伴って、ディレクトリ構造が変わっていないことが前提ですが、上記の設定でドメイン単位のリダイレクトが設定できます。

permanentは恒久的に転送するという意味。
「/」はルートドメイン直下を表し、ここへのアクセスはbbb.comと置き換えてリダイレクトします。
1行で下層ディレクトリ全てに設定が反映されるので、綺麗な記述方法ですね。

記載場所は

初期のワードプレスの.htaccessは

<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>

# END WordPress

こちらのような記載がされています。

htaccessは上から順番に処理を実行していくため

新たなリライトルールを追記する際、リダイレクトするならRewriteEngine Onの直下に記載しましょう。

おすすめの記事