• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.htaccess Refererによるアクセス制限で更新したときについて)

.htaccess Refererによるアクセス制限で更新したときについて

このQ&Aのポイント
  • .htaccess Refererによるアクセス制限を行い特定のサイトからのアクセスを拒否する方法について説明します。
  • 更新したときにIE7では表示されてしまい、Firefoxではエラーを返すことができますが、IEでも同じようにエラーを返す方法を知りたいです。
  • また、403エラーを404エラーとして返す方法についても説明します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>1の方法と2の方法があると解釈してよかったでしょうか? そうです 1の方法 または 2の方法です。 1の方法でしたら まず ErrorDocument 403 /hoge.php で指定した phpでcookieを発行するのですが setcookie("BadCookie", 403); などの記述を追加して .htaccess に SetEnvIf Referer "^http://www\.example\.jp" ref_ng SetEnvIf Cookie "BadCookie" ref_ng ## ↑この行追加 order allow,deny allow from all deny from env=ref_ng これで 試してみてください。

参考URL:
http://jp2.php.net/manual/ja/function.setcookie.php
chelucyxxx
質問者

お礼

丁寧にありがとうございます。 早速ためしてみたところ、上手くできて感動してしまいました! こんなに簡単に解決できるなんて…。 本当にありがとうございました♪

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

結論から書きますと 全くご希望通りのことは難しいようです 代替案としては 1.403のページで cookieを発行して setenvifで振り分け  (但しcookieを受け取らないと駄目 またブラウザを再起動または expire切れまで全くアクセスできない) 2. Rewriteで 直リンク防止をして RewriteEngine on RewriteCond %{HTTP_REFERERI} !^http://hoge.example.com RewriteRule ^/?.+$ / [R=302,L] ## 但しエラーメッセージは出ない 直アクセス時に はtoppageへ飛ばすだけ 説明:  環境変数一覧表示のphpをErrorDocument で指定して見ました  FireFOXの場合 ErrorDocumentで飛ばしたこと自体に対する Refererは出ませんが  MSIE7の場合 ErrorDocumentで飛ばしたこと自体に対してもRefererを吐いてしまうため おっしゃるような現象が出ます    工夫して見ましたが 上記の代替案以外の方法は思い浮かびませんでした

chelucyxxx
質問者

補足

回答ありがとうございます。 1の方法と2の方法があると解釈してよかったでしょうか? 手順だったり解釈違いでしたら申し訳ありません。 特定のサイトからのアクセスを404を返して存在しないと偽りたいので1の方法を試してみようと思うのですが >cookieを発行して setenvifで振り分け~expire切れまで全くアクセスできない それが何を示しているのか具体的にどのように施せばよいのかと把握できない状態です。 そんなかんじなので私に施すのが無理そうなら現状でもいいかな、程度に思ってます。 説明の方とても分かりやすく、あぁなるほどと思うことができました。 色々と工夫を施してくださりありがとうございました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう