index

2004年 3月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
2004年 4月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
2004年 5月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
  31            

アレ

特定ページへのアクセスを 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 する時に, Indexesindex.php が先にあったりすると https://www.example.com/hoge/index.php にリダイレクトされ, 結果,その先で 404 になるので,それを防ぐため.

ログを出して見てみると,うーん,なんかこー,もちっと効率的にならんものかしらねぇ. つーか RewriteMap って設定そのものが激しく非効率的なのか. どうしたものかなぁ.

index