更新日: 2018-03-24 (土) 22:04:09 (85d)

:Apache

mod_rewriteのRewriteCondで「特定の文字列を含まない」条件を定義してみました。
RewriteCondでは条件を正規表現で記述でき、正規表現の否定先読みや否定戻り読み機能を使うと「特定の文字列を含まない」条件を定義することができます。

今回はmod_rewriteでクエリーストリングに"action=login"が含まれる場合はHTTPS通信を、そうでない場合はHTTP通信を強制するように設定しました。
/action=(?!login)/という正規表現で"action=login"以外の"action="にマッチする条件を定義できます。

このmod_rewrite設定は下記のようになりました。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} action=login
RewriteRule ^.*$  https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteCond %{HTTPS} on
RewriteCond %{QUERY_STRING} action=(?!login)
RewriteRule ^.*$  http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

これで下記のような動作を設定できました。

  • HTTP通信時にクエリーストリングがaction=loginの場合はHTTPSにリダイレクトする
  • HTTPS通信時にクエリーストリングがlogin以外のactionの場合はHTTPにリダイレクトする

選択肢 投票
役に立った 1  
役に立たなかった 1  
どちらでもない 0  
このページが参照された数
Total: 3160, 今日: 5, 昨日: 0

でじうぃきは神奈川県横浜市の位置情報システム・スマホアプリ開発の株式会社オンラインコンサルタントが運営しています。
投稿
トップ   このページを編集する 再編集不可にする 差分 バックアップ 添付 複製 名前変更 リロード   新しいページを作る 一覧 検索する 最新の更新   ヘルプ   最終更新のRSS
Last-modified: 2018-03-24 (土) 22:04:09 (85d)