使用.htaccess拒绝访问目录中的所有PHP文件

时间:2015-05-18 15:44:18

标签: php apache .htaccess

我试图拒绝任何在特定目录中浏览PHP文件的人访问:

example.com/inc/

我创建了一个带有内容的example.com/inc/.htaccess文件:

Order deny,allow
Deny from all

当我尝试访问其中一个文件时,这会导致403 Forbidden响应。例如:example.com/inc/file.php

问题是,我的网络服务器也被拒绝访问,我的应用程序停止工作。

如何拒绝访问浏览此类PHP文件但允许我的共享Web服务器访问的用户?

注意:我正在使用GoDaddy共享托管。

4 个答案:

答案 0 :(得分:5)

我会使用规则并阻止用户输入的访问权限。这将阻止输入的任何php文件。

RewriteEngine On
RewriteRule ^.*\.php$ - [F,L,NC]

根据您的评论进行修改。试试这种方式。

<Files (file|class)\.php>
order allow,deny
deny from all
allow from 127.0.0.1
allow from 192.168.0.1
</Files>

将192.168.0.1替换为您的服务器IP地址。

答案 1 :(得分:2)

使用正确的目录结构将文件放到lib /目录中,并将其包含在此目录中不存在的文件中。这是常见框架的工作原理。

您甚至可以将您的网址映射到网络/目录并将网站放在一个目录中,然后您确定无法访问您的.php文件,只能访问index.php和资产。

你可以阅读它是如何解决的,例如在Symfony2 http://symfony.com/doc/current/quick_tour/the_architecture.html它会给你一些线索。

答案 2 :(得分:1)

要阻止对以.php结尾的所有文件的导航访问权限,您可以使用:

RedirectMatch 403 ^.*\.php$

答案 3 :(得分:1)

要仅拒绝访问php文件,您可以使用:

<Files *.php>
order allow,deny
deny from all
</Files>