2007-10-09
■[Apache] 共用SSLでmod_rewriteによるSSL領域の切り替え

http://独自ドメイン/ssl/ 以下にアクセスした場合、SSLに切り替える。
また、ssl/以下から相対パスで他の階層のファイルにアクセスした場合、SSLから通常の接続に切り替える。
RewriteEngine On
RewriteBase /httpd/htdocs
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} ssl/
RewriteRule ssl/(.*)?$ https://独自ドメイン/ssl/$1 [L,R]
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{REQUEST_URI} !ssl/
RewriteRule (.*)?$ http://独自ドメイン/$1 [L,R]
ただ、ssl/以下のファイルから、ssl/以下以外の階層へ画像等の相対リンクが貼られている場合、IEでは鍵が表示されない場合がある。Firefoxの場合、鍵に×がつき「警告:証明されていない内容が含まれています」と表示される。
その場合の対処方法
RewriteEngine On
RewriteBase /httpd/htdocs
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} ssl/
RewriteRule ssl/(.*)?$ https://独自ドメイン/ssl/$1 [L,R]
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{REQUEST_URI} !ssl/
RewriteCond %{REQUEST_URI} !common/
RewriteCond %{REQUEST_URI} !images/
RewriteRule (.*)?$ http://独自ドメイン/$1 [L,R]
コメントを書く
トラックバック - http://d.hatena.ne.jp/bb_mogi/20071009/1191918997