2012-01-18 143 views
2

我的网站从很多页面构建而成,这些页面分为两类,一类是“html”文件和“核心”文件,其中包含“html”文件的功能和服务器端代码需要,他们的PHP文件PHP:阻止浏览器请求

有“核心”文件不能从“html”文件请求,我想阻止这种情况。

我希望“核心”文件只有在“html”文件要求时才能打开,否则会显示404错误,这是可能的吗?

note *:我前面说过,“html”和“core”文件都是PHP文件。

谢谢你提前!

+0

这实际上是一个服务器设置,不是一个真正的PHP问题。可能要把它带到不同的StackExchange站点 – 2012-01-18 20:36:41

+0

我其实在服务器中什么都不知道,如果可以的话,我很有兴趣在php中这样做。 – 2012-01-18 20:37:20

回答

3

在您的Core中创建验证码。

Somehting like,验证常量“html”,如果已定义,则运行代码,如果没有,则抛出404错误。

http://br2.php.net/manual/pt_BR/function.constant.php

另一种方式是使用htaccess的,如果你使用Apache服务器阻塞。

HTML(PHP文件)

define('HTML'); 

核心(PHP文件)

if(!defined('HTML')) { /* Display 404 error */ } 
1

您可以通过服务器设置来控制它,或者更好地将它们移出文档根目录。

2

您可以使用.htaccess来限制对相关文件的访问。

例如。如果“核心文件”有一个PHP扩展,而所有其他人的.html您可以添加为.htaccess是这样的:

<Files ~ "\.php$"> 
Order allow,deny 
Deny from all 
</Files> 

或者,如果你所有的“核心文件”都在一个目录下,你可以限制通过输入访问

<Directory ~ "\core"> 
Order allow,deny 
Deny from all 
</Directory> 

记住要让AllowOveride All为了让Apache使用您指定的.htaccess。

+0

正如我在文章中所说,他们都是PHP文件,因为它们包含html代码,所以它称为“html”文件。我会考虑我的选择,如果我没有在PHP我会去htaccess,感谢您的快速重播。 – 2012-01-18 20:42:19

+0

@MorSela对不起,我错过了! :)您可以将您的核心文件重命名为.inc.php,并按上面的指定应用限制或将它们移动到单独的目录并限制它。 GabrielGartz提到的定义的概念也是一个可行的解决方案 – mobius 2012-01-18 20:47:22