よく使うhtaccessリダイレクトまとめ
よく使う.htaccessリダイレクトの
書き方をまとめました。
http から https にリダイレクト
1 2 3 |
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
WordPressの場合
# BEGIN WordPress よりも前に記述します。
1 2 3 4 5 6 7 8 9 10 11 12 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> # BEGIN WordPress <IfModule mod_rewrite.c> ~ </IfModule> # END WordPress |
wwwなしに統一
1 2 3 |
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] |
wwwありに統一
1 2 3 |
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*) $https://www.%{HTTP_HOST}/$1 [R=301,L] |
トップページ以外のアクセスをトップページにリダイレクト
1 2 3 |
RewriteEngine on RewriteCond %{REQUEST_URI} !(^/$) RewriteRule ^(.*)$ / [R=301,L] |
特定ディレクトリへのアクセスをトップページにリダイレクト
1 2 3 |
RewriteEngine on # /exampleディレクトリへのアクセスをトップページにリダイレクト RewriteRule ^example(/.*)?$ / [R=301,L] |
特定のページへのアクセスをトップページにリダイレクト
1 2 3 |
RewriteEngine On # /example/index.html へのアクセスをトップページにリダイレクト RewriteRule ^example/index\.html$ / [R=301,L] |
特定ディレクトリ、画像、CSS、サブドメインへのアクセスを除外
1 2 3 4 5 6 7 8 |
RewriteEngine on # 特定ディレクトリ、画像、CSS、サブドメインへのアクセスを除外 RewriteCond %{REQUEST_URI} !^/example-directory [NC] RewriteCond %{REQUEST_URI} !\.(jpg|jpeg|png|gif|css)$ [NC] RewriteCond %{HTTP_HOST} !^subdomain\. [NC] # 上記条件に当てはまらない場合、トップページにリダイレクト RewriteRule ^(.*)$ / [R=301,L] |
全てのページへのアクセスを準備中ページにリダイレクト
1 2 3 4 5 6 |
RewriteEngine on # 503ステータスコードで全てのページを準備中ページにリダイレクト RewriteRule ^ /coming-soon.html [R=503,L] # カスタムエラードキュメントを設定 ErrorDocument 503 /coming-soon.html |
全てのページを別ドメインにリダイレクト
1 2 3 4 |
RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteRule ^(.*)$ https://newdomain.com/$1 [L,R=301] |
1 2 3 4 5 |
RewriteEngine On RewriteBase /abc/ RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule ^(.*)$ https://newdomain.com/$1 [L,R=301] |
パラメータ付きURLのリダイレクト
【例】
https://example.jp/aaa/index.html?id=bbb
から
https://example.jp/aaa/index.html?id=ccc
1 2 3 |
RewriteEngine On RewriteCond %{QUERY_STRING} ^id=bbb$ RewriteRule ^aaa/index\.html$ https://example.jp/aaa/index.html?id=ccc [R=301,L] |
【例】
https://example.jp/aaa/index.html?id=bbb
から
https://example.jp/ccc/index.html?id=bbb
1 2 3 |
RewriteEngine On RewriteCond %{QUERY_STRING} ^id=bbb$ RewriteRule ^aaa/index\.html$ /ccc/index.html? [R=301,L] |