よく使う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 |
RewriteEngine On RewriteCond %{REQUEST_URI} !/maintenance\.html$ [NC] RewriteRule ^(.*)$ /maintenance.html [R=302,L] |
全てのページへのアクセスをメンテナンスページにリダイレクト 特定のIPアドレスを除外する
1 2 3 4 |
RewriteEngine On RewriteCond %{REMOTE_ADDR} !^000\.000\.000\.000$ [NC] RewriteCond %{REQUEST_URI} !/maintenance\.html$ [NC] RewriteRule ^(.*)$ /maintenance.html [R=302,L] |
全てのページを別ドメインにリダイレクト
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] |