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
RewriteCond %{http_host} ^aaa.com
RewriteRule ^(.*) https://bbb.com/$1 [R=301,L]
記載場所は
初期のワードプレスの.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の直下に記載しましょう。