厳密なチェックが必要なければリファラーのチェックとかで実装出来ると思います。
例えば下記のような3つのファイルを用意します。
有効にしたいページ。
例としてenable_url.htmlという名前にします。
HTML
1<!doctype html>
2<html>
3 <head>
4 <title>このページからのアクセスは有効</title>
5 </head>
6
7 <body>
8 <a href="/target.php">目的のページ</a>
9 </body>
10<html>
それ以外のページ
例としてdisable_url.htmlとします。
HTML
1<!doctype html>
2<html>
3 <head>
4 <title>このページからのアクセスは無効</title>
5 </head>
6
7 <body>
8 <a href="/target.php">目的のページ</a>
9 </body>
10<html>
飛び先のPHPで有効にしたいページのリファラーかどうかをチェックします。
有効にしたいページ以外では404などで弾きます。
PHP
1<?php
2$enable_referer = 'http://example.com/enable_url.html'; // ドメインは変更してください
3if (!isset($_SERVER['HTTP_REFERER']) || $_SERVER['HTTP_REFERER'] !== $enable_referer)
4{
5 echo "404 Not Found";
6 header("HTTP/1.1 404 Not Found");
7 exit(1);
8}
9echo "OK!";
これで出来ると思います。
リファラーは偽装出来るので厳密なチェックが必要な場合はセッションを使う、もしくはワンタイムトークンなどを発行してパラメータに付与してアクセスさせるとかで実装出来ると思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。