出来ましたら、リファラ以外の方法でお願いいたします。
※環境はPHPです。.htaccessも使えます。
クッキーを使うのはどうでしょう?
直前にどのページにいたかをクッキーに記録しておき、各ページで「リンク元として正しいページから飛んできているか」をチェックしてコンテンツを表示するかエラーメッセージを出すか分岐するとできそうに思います。
>直接にURLを入力して、アクセスしてくるユーザーを拒否する
ということは、前のページのリンクや、ボタンを押してくるユーザーのみがページの閲覧ができるということでしょうか?
リファラを使わないのであれば、フォームに
<form action='hoge.php' method='post' >
<input type='hidden' name='myname' value='true' />
などとして
PHP側で
if($_POST['myname'] == true)
とすれば、ポストされてなければ(URL直打した場合など)閲覧できないようにする
というのはどうでしょうか?
詳細な用途が分からないのでこれで満足のいける解決かどうか分かりませんが、URL直打を排除することは可能であると思います。
http://www.sound-uz.jp/php/tips/gpc.html
$_GETと$_POSTの使用例です。
http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/
例えば、.htaccess で
DirectoryIndex を、index.php としておく
表示するファイルは拡張子を html(○○.html)にして保存する
リンク先は全て ○○.htm としておく
○○.html のファイルへのアクセスを禁止する
○○.htm へのアクセスは、index.php?p=○○ となる様に rewrite する
(○○.htm?a=uso&b=0 なら index.php?p=○○&a=uso&b=0 )
で、index.php でパラメータを読み込んで、必要なファイルを返すってのはどうでしょう。
全てのアクセスが、この index.php を通過する事になるので、ファイルを送り出す時に、
クッキーを仕込む
リンク先にセッションID(のようなものでも)を埋め込む
アクセスログを作っておいて、/ で終わるアクセス後でないと同一IPからはアクセスできないようにする
など、細かいチェックができるようになると思います。
以前会員登録タイプのサイトを制作した方に聞いたのですが、
登録ページが複数に渡るときには、セッション管理というのを
使って前ページからの遷移を管理していたそうです。
私は詳細までは答えられないのですが、下記、参考になりそうなページです。
http://www.shtml.jp/htaccess/host.html
id:sudayosiakiさんと似たような方法ですが、.htaccessで逆に自分のipアドレスのみそのページ入れるように設定しておいて、そのほかのipアドレスの人は別ページに飛ばしてしまうように設定するとか。
コメント(0件)