特定ページへのアクセスを https にリダイレクト
▽20040402a
#コンピュータ
#apache
「https でアクセスするページ一覧」を用意しておいて, そこに http でアクセスされたら自動的に https 接続に切り替え(リダイレクト)する, という設定.
RewriteMap https_pages txt:/home/www/www.example.com/htdocs/https_access.map.txt
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -f
RewriteCond ${https_pages:%{REQUEST_URI}|http} =https
RewriteRule "^(.+\.(php|html|htm|cfm))?$" "https://www.example.com$1"
や,Rewrite 使うのに慣れてないから,これで良いのか(もっと効率的な方法があるのか)判らないんですけどね.
RewriteRule
に拡張子が指定されてるのは,
画像とかまで含んじゃうと,https_access.map.txt に画像まで含めなきゃいけなくなっちゃうから.
RewriteCond
で -f を指定してるのは,
/hoge/index.html
にアクセスするつもりで http://www.example.com/hoge/
を GET する時に,
Indexes
で index.php
が先にあったりすると https://www.example.com/hoge/index.php
にリダイレクトされ,
結果,その先で 404 になるので,それを防ぐため.
ログを出して見てみると,うーん,なんかこー,もちっと効率的にならんものかしらねぇ.
つーか RewriteMap
って設定そのものが激しく非効率的なのか.
どうしたものかなぁ.