.htaccessのRewriteRule 記載例まとめ

.htaccessのRewriteRule 記載例まとめ

.htaccessのRewriteRule 記載例をまとめました。

メンテナンスページへリダイレクトする

HTTPレスポンスコード「503」は、Service Unavailable(「サービス利用不可」「サービスが利用できません」)を意味する。

アクセスページが「/maintenance.html」ではない かつ
アクセス元が「192.168.10.13」ではない場合、
レスポンスコードを503を返す

htaccess のソースコード

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/maintenance.html
  RewriteCond %{REMOTE_ADDR} !=192.168.10.13
  RewriteRule ^.*$ - [R=503,L]
</IfModule>

httpでアクセスが来たら、強制的にhttpsにリダイレクトする

アクセスページが「/maintenance.html」ではない かつ
アクセス元が「192.168.10.13」ではない場合、
レスポンスコードを503を返す

htaccess のソースコード

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

/shop/または、/blog/でアクセスが来たら、/old/を先頭につけたページにリダイレクトする

アクセスページが「/old」ではない かつ
アクセスページが「/shop/」または「/blog/」である場合、
「/old」を先頭につけて「/old/shop/」、「/old/blog/」のリンクにリダイレクトする

htaccess のソースコード

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !/old
RewriteCond %{REQUEST_URI} (^/shop/|^/blog/)
RewriteRule ^(.*)$ /old/$1 [R=301,L]
</IfModule>

表示URLは変更せずに、リダイレクトする

上のTips との違いは、R=301 があるかどうか。
R=301をつけないと、内部リンクのみリダイレクトされる。

htaccess のソースコード

RewriteRule ^(.*)$ /old/$1 [L]

サーバ・インフラカテゴリの最新記事