Вы также можете использовать .htaccess с apache блокировать каждый внешний запрос к странице, если он вызывается внутренне, или блокировать каждый запрос, который не из вашего домена:
Google search thingie
EDIT
Вы также можете использовать некоторый php-файл, который содержит файл, который не может быть прочитан. Так, например, у вас есть file.php:
<?php
$allowedFiles[] = 'somefile.php';
$allowedFiles[] = 'someotherFile.php';
$allowedFiles[] = 'jsonReturnFile.php';
if(in_array($_GET['file'], $allowedFiles)){
include( "include/".$_GET['file'] );
}
?>
Затем вы можете разрешить file_ get _contents () для этого файла и записать rewriteRule в ваш .htacces, чтобы запретить любой запрос к папке include /.
RewriteRule include* - [F,NC]
Это вернет запрещенную ошибку 403 для запроса к этому каталогу или любому файлу в каталоге.
Затем вы можете выполнить JSON-запрос к чему-то вроде: file.php? File = jsonReturnFile.php & someothherParamReadByJsonFile = 1
И когда кто-то пытается получить содержимое файла для JSON-файла, он получает запрещенную ошибку, и получение содержимого файла для include.php не даст ничего полезного.