MENU

特定のリファラからのアクセスを別URLに転送する

まとめサイトや匿名掲示板など、特定のリファラ(ウェブサイト、URL)からのアクセスを別のURLに転送したい場合。

当サイトでは、下記のような記述が有効でした。

たとえば、『NAVERまとめ』からのアクセスをYahoo Japanに転送したい場合。

.htaccess のトップに記述します。

RewriteEngine on
SetEnvIfNoCase Referer "^https://www\.matome\.naver\.jp/" kick_ref
RewriteRule ^ https://www.yahoo.co.jp/? [R=301,L]
order allow,deny
allow from all
deny from env=kick_ref

WordPressの場合

WordPressを使用している場合は、WordPress独自のリライトルールの前に記述します。

↑ これより上部に記述
-------------------------------------
# BEGIN WordPress

RewriteEngine On
RewriteBase /typecloud/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /typecloud/index.php [L]

# END WordPress
--------------------------------------
↓ これ以後にリライトルールを記述しない

特定のリファラからのアクセスをブロックする方法もあったのですが、どれも上手く行かず、上記の方法だけが確実でした。

匿名掲示板などで晒し者にされたり、iflameの取り込み被害にあった時などにお役立て下さい。

※ 参考サイト

it-swarm.dev

How do you block a referer but for a specific URL using .htaccess?

下記のサイトにはアクセス制限のhtaccessを自動生成するフォームがあるのですが、私の環境ではアクセス拒否が効きませんでした。

他のサーバー環境なら使えるかもしれないので、興味のある方は試してみて下さい。

Referer(遷移元情報)によるアクセス制限作成

「特定のリファラ URL転送」「htaccess リファラ」など、キーワードを変えて検索すると、いろんな記述方法にヒットします。
サーバー環境や使用中のプラグインによっては、記述が効かないこともありますので、一つずつ、根気よくテストして下さい。

なお、テストする際は、「複数のブラウザでテストする」「テスト毎に、履歴を削除する(ブラウザキャッシュの削除)」などして、フレッシュな状態で動作確認することをおすすめします。

また、htaccessに記述して、新しいファイルをアップロードしたら、すぐにテストするのではなく、十秒ほど待って、動作確認して下さい。
サーバーによっては、直ちに反映されないことがあります。(ブラウザキャッシュも同様)

目次
閉じる