为了账号安全,请及时绑定邮箱和手机立即绑定

使用.htaccess禁用目录(包括所有子目录)中的PHP

使用.htaccess禁用目录(包括所有子目录)中的PHP

PHP
长风秋雁 2019-08-27 10:33:54
使用.htaccess禁用目录(包括所有子目录)中的PHP我正在建立一个允许人们上传文件,html页面等的网站......现在我遇到了问题。我有这样的目录结构:-/USERS    -/DEMO1    -/DEMO2    -/DEMO3    -/etc... (every user has his own direcory here)-index.php-control_panel.php-.htaccess现在我想禁用PHP,但在/ USERS内的direcories和子目录中启用服务器端包含可以这样做(以及如何:))?提前致谢。顺便说一下,我使用的是WAMP服务器
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

尝试禁用.htaccess文件中的engine选项

php_flag engine off


查看完整回答
反对 回复 2019-08-27
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

要禁用对子目录的所有访问(最安全),请使用:

<Directory full-path-to/USERS>
     Order Deny,Allow
     Deny from All </Directory>

如果您只想阻止直接提供PHP文件,请执行以下操作:

1 - 确保您知道服务器识别为PHP的文件扩展名(并且不允许人们在htaccess中覆盖)。我的一台服务器设置为:

# Example of existing recognized extenstions:AddType application/x-httpd-php .php .phtml .php3

2 - 基于扩展,将正则表达式添加到FilesMatch(或LocationMatch)

 <Directory full-path-to/USERS>
     <FilesMatch "(?i)\.(php|php3?|phtml)$">
            Order Deny,Allow
            Deny from All    </FilesMatch>
 </Directory>

或者使用Location来匹配php文件(我更喜欢上面的文件方法)

<LocationMatch "/USERS/.*(?i)\.(php3?|phtml)$">
     Order Deny,Allow
     Deny from All</LocationMatch>


查看完整回答
反对 回复 2019-08-27
?
大话西游666

TA贡献1817条经验 获得超14个赞

如果你正在使用mod_php,你可以把(在/ USERS中的.htaccess或者在USERS目录的httpd.conf中)

RemoveHandler .php

要么

RemoveType .php

(取决于是否使用AddHandler或AddType启用PHP)

从另一个目录运行的PHP文件仍然可以包含/ USERS中的文件(假设没有open_basedir限制),因为这不通过Apache。如果使用apache访问php文件,它将作为纯文本服务器。

编辑

Lance Rushing的拒绝访问文件的解决方案可能更好


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 935 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信