mod_rewrite RewriteCondの正規表現で、httpでもhttpsでも対象にする書き方は、https* | クズリーマンのカス備忘録

mod_rewrite RewriteCondの正規表現で、httpでもhttpsでも対象にする書き方は、https*

apache logo Apache
スポンサーリンク

Apacheのモジュールである、mod_rewriteは、WordPressにも使われている、リダイレクトをしたいときなどによく使われるモジュールだ。

RewriteCondは、リダイレクトなどの動作をさせるための、「条件」を定義するディレクティブ。

RewriteCond チェックする内容 正規表現パターン

の書き方で指定する。

RewriteCond "%{HTTP_REFERER}" https://example.com/

って書いた場合、リファラー(どこのWebサイトURLから遷移してきたのか)が「https://example.com/」だった場合が該当する。

該当したら、「RewriteCond」ディレクティブより下段に処理が進む。

 

リファラーがhttpの場合とhttpsの場合 を一行で書く

  • http://example.com/
  • https://example.com/

のどちらがリファラーの場合も処理の対象にしたい場合、以下のように書く。

RewriteCond "%{HTTP_REFERER}" "!^https*://example.com/$" [NC]

sのあとに「*」をつけることで、「sが0回以上繰り返す」という正規表現になる。

 

ちなみに最後に書いてる[NC]は、mod_rewriteのフラグのひとつ。

NCは大文字小文字を区別しないという意味。

NoCaseの略だと思われる。

 

コメント

タイトルとURLをコピーしました