全ページhttps化が進む中、httpでのアクセスを⇒httpsに統一するためのhtaccessの設定です。
今回はBOTアクセス拒否や、ガラケー端末のリダイレクトもまとめて記載してみます。
BOTや、ガラケー、スマホ端末のユーザーエージェントをその時期の状況に合わせて、列挙する感じになるのですが、
htaccessで使える環境変数を使って、今後未来に追加が必要になりそうなユーザーエージェントを変数にしてしまうと後のメンテナンスの際に1行修正すればよいようにできそうです。
# 環境変数 BOT系 SetEnvIf User-Agent "^(Wget|WeBoX|Sogou webspider|Snapbot|Moreoverbot|HappyFunBot)" UA=bot # 環境変数 携帯&スマホ SetEnvIf User-Agent "^(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank)" UA=mobile SetEnvIf User-Agent "(iPhone|Android.*Mobile|Windows.*Phone)" UA=sp # 環境変数 非SSL対象ディレクトリ SetEnvIf REQUEST_URI "^/mobile/.*$" DIR=move_dir RewriteEngine on # BOT拒否 RewriteCond %{ENV:UA} bot$ RewriteRule ^.* - [F] # 携帯アクセス リダイレクト RewriteCond %{ENV:UA} mobile$ RewriteCond %{ENV:DIR} !move_dir$ RewriteRule ^(.*)$ http://%{HTTP_HOST}/mobile/error.html [R,L] # 特定ディレクトリ以外 https化 RewriteCond %{HTTPS} off RewriteCond %{ENV:DIR} !move_dir$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
SSL証明書は、セキュリティ向上のため古いプロトコルや設定(SSL3.0やTLS1.0など)ではアクセスできない仕様になってきています。そのためガラケー端末の多くはhttpsサイトが見れなくなっていく可能性が高く、ガラケーアクセスや、ガラケー用ページは、閉鎖やサポート打ち切りになってきています。
全ページhttps化すると、これまでガラケーでみれてたのに、突然見れなくなるというケースも出てきます。
利用者はかなり少ないので影響も小さいですが、できるだけ親切にする場合は、https統一の処理の前に、ガラケーアクセスを非SSLのページへ誘導させるようにして、https未対応の端末でも、エラー表示を回避でき何かしらの情報が掲載されたページをみることができると思います。クレーム減少にも期待できますかね。。※ガラケー(フューチャーフォン)