2010-10-27 88 views
0

可能重复:
Deny ajax file access using htaccess块访问AJAX目录中的.htaccess

我有一个目录“AJAX”有我所有的好AJAX内容是格式化的和丑陋的,如果你直接点击页面。如何阻止某人使用.htaccess文件击中http://www.site.com/AJAX/page1.php

+0

你试过..搜索? http://tinyurl.com/39d2ucw – drudge 2010-10-27 00:52:19

+0

是的,我tried..searching,发现以下 拒绝来自所有 这并没有让这些文件得到服务。男人,这是很多努力讽刺。我需要一种方法来阻止人们浏览文件,但仍然让他们得到服务。就像我的问题一样。 – 2010-10-27 00:53:38

+0

伟大的工作,太糟糕了问题是2岁....保持良好的工作Ehsan! – 2012-07-12 21:14:12

回答

0

您并不是真的想用.htaccess来阻止访问内容,因为您仍然需要能够从您的应用程序访问此内容。

如果你觉得它是重要的,让人们直接加载此内容,您可以路由所有流量通过一个单一的PHP页面,如:

http://www.site.com/ajax.php?content=page1 

,然后在ajax.php,你可以限制访问该内容只有HTTP后,并可能通过其他手段,如独特的令牌。就像在引用页创造一个独特的令牌123,然后使用网址:

http://www.site.com/ajax.php?content=page1&token=123

并且只会将文件如果令牌是在内存中仍缓存。

虽然这会工作,我不明白这一点。如果有人想加载该页面,谁在乎。你无法阻止他们,因为你需要它来运行你的应用程序访问的内容 - 他们总是可以从浏览器缓存或使用本地HTTP代理得到它。

+0

老实说,我不在乎。我的老板呢。直接观看时,页面无样式和“难看”他们得到的CSS时,他们通过jqeury .load带来的主网页。我知道我可以塑造他们,但他想要这样。我曾尝试向他们传递一个变种,我可以直接打到403,但是这也不会让他们在主页面上使用它加载<?php $ _POST ['foo'] ;?>,并在单个页面上<?php if(!isset($ _ Post ['foo']))header('Location:403.php')'?>是否有问题? – 2010-10-27 03:14:04