我有一个php文件,我将专门使用它作为include.因此,我想抛出一个错误,而不是在直接通过输入URL而不是被包含来访问它时执行它.
基本上,我需要在php文件中进行如下判断:
if ( $REQUEST_URL == $URL_OF_CURRENT_PAGE ) die ("Direct access not premitted");
有什么简单的方法可以做到这一点吗?
我有一个php文件,我将专门使用它作为include.因此,我想抛出一个错误,而不是在直接通过输入URL而不是被包含来访问它时执行它.
基本上,我需要在php文件中进行如下判断:
if ( $REQUEST_URL == $URL_OF_CURRENT_PAGE ) die ("Direct access not premitted");
有什么简单的方法可以做到这一点吗?
对于一般的"在Apache服务器上运行的PHP应用程序,您可以完全控制,也可以不完全控制"情况,最简单的方法是将您的include放入一个目录中,并拒绝您对该目录的访问.htaccess文件.为了省go 人们在谷歌上搜索的麻烦,如果您使用的是Apache,请将其放在一个名为".htaccess"的文件中,该文件位于您不希望访问的目录中:
Deny from all
如果你真的完全控制了服务器(现在即使是小应用也比我第一次写这个答案时更常见),最好的方法是将你想要保护的文件粘贴到你的web服务器所服务的目录之外.因此,如果你的应用程序在/srv/YourApp/
中,请将服务器设置为提供/srv/YourApp/app/
中的文件,并将包含的内容放在/srv/YourApp/includes
中,这样就没有任何URL可以访问它们.