我不想让人们直接进入AJAX目录中的页面,但仍然需要从他们的父页面提供服务。我尝试过很多.htaccess行,但它们都会从主页面中阻止它。总而言之,我不希望人们能够输入http://www.mysite.com/AJAX/page1.html并查看它,但需要通过AJAX将page1.html带入其父页面。
<LIMIT GET POST>
Order deny, allow
deny from all
</LIMIT>
阻止所有访问
您可以在父文件define('IS_IN_SCRIPT',1);
中定义一个标志并在AJAX页面中检查它吗?这将适用于AJAX页面还是仅包含PHP?
答案 0 :(得分:3)
检查您的域中是否有$_SERVER['HTTP_REFERER']
(或可接受域名列表)
然后重定向。
if (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'yourdomain.com') !== false)
{ echo 'probably from your own site'; }
答案 1 :(得分:1)
你总是可以设置一些东西,这样如果没有通过GET或POST传递一个特定的参数,那么ajax页面只会将你重定向到其他地方。
在php中,它看起来像
if(!isset($_POST['some_var']))
header('Location: somePage.html');
答案 2 :(得分:0)
$$ zoe_daemon
您需要“链接”文件才能通过AJAX从父页面打开私人文件。
/*this is simple "linker" file to open private file in folder named "private" from parent page via AJAX.*/
//begin linker.php
<?php
$link = $_GET["link"];
include "../private/$link.php";
?>
//end linker.php
然后,“private”文件夹中的文件需要检查请求URI是否包含字符串“private”;对于想要直接私有文件的用户无效。 对于axample,如果您将此代码放在要放置的操作代码之前,则无法直接访问名为“private”的文件夹中的“login.php”
//begin login.php
$count = 0;
$test = str_replace("name_of_directory_cannot_directly","dummy_string",$_SERVER['REQUEST_URI'], $count ); //or
if ($count > 0) {
die "Ooouuuppppsss, you cannot access this file directly");
}
/*
//your code here....
*/
//end login.php