pushState 用リダイレクト
存在しないファイルやディレクトリへのアクセスは index.html
へリダイレクトさせる場合:
.htaccess
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.html [L]
</ifModule>
指定日時までリダイレクト
公開日時まではアクセスがあっても別パスでリダイレクトさせる。この場合は 2015 年 3 月 23 日 20:50:59 秒までは /teaser
以下にリダイレクトさせる例:
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{TIME} <20150323205059
RewriteRule ^(.*)$ teaser/ [R=302,L]
RewriteBase /
</IfModule>
UA 判定による自動リダイレクト
スマートフォンからのアクセスであった場合に /sp
配下の同階層にリダイレクトさせる場合:
.htaccess
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !/sp/
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone)
RewriteRule ^(.*)$ sp/$1 [R]
RewriteBase /
RewriteCond %{REQUEST_URI} /sp/
RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone)
RewriteRule ^sp/(.*)$ /$1 [R]
RewriteBase /
</ifModule>
-
RewriteBase
はRewriteRule
の リダイレクト先の ベースになるパスを指定する。
Android 標準ブラウザを足切りするリダイレクト
Android で標準ブラウザが搭載された最終バージョン 4.4 未満の標準ブラウザは、足切りページへリダイレクトさせる場合:
.htaccess
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !/sorry.html
RewriteCond %{HTTP_USER_AGENT} (Android\ 4\.3|Android\ 4\.2|Android\ 4\.1|Android\ 4\.0|Android\ 3|Android\ 2|Android\ 1)
RewriteCond %{HTTP_USER_AGENT} !(Chrome)
RewriteRule ^(.*)$ sorry.html [R]
RewriteBase /
</ifModule>