mod_rewriteで、リファラーをチェックして指定したURLから以外の訪問を別ページにリダイレクトさせる

やりたいこと

以下の2点からのみアクセスを許可したい。

  • 会員ページAサイト
  • 会員専用コンテンツ

 

上記2点以外からのアクセスは、会員ログインページに飛ばす(リダイレクトさせる)。

 

URLは以下の感じ。

  • 会員ページAサイト
    • https://foo.com/配下すべて
  • 会員専用コンテンツ
    • https://baa.com/member-only/配下すべて
  • 会員ログインページ
    • https://foo.com/login/

 

やり方

httpd.confや、mod_rewriteが許可された.htaccessなどに以下の用に記述する。

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /
  RewriteCond "%{HTTP_REFERER}" "!^https*://foo.com/.*$" [NC]
  RewriteCond "%{HTTP_REFERER}" "!^https*://baa.com/member-only/.*$" [NC]
  RewriteRule ^.*$  https://foo.com/login/ [R,L]
</IfModule>

以上

コメント

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