使用.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 回答
![?](http://img1.sycdn.imooc.com/5333a1d100010c2602000200-100-100.jpg)
慕哥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>
![?](http://img1.sycdn.imooc.com/545861f00001be3402200220-100-100.jpg)
大话西游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的拒绝访问文件的解决方案可能更好
- 3 回答
- 0 关注
- 935 浏览
添加回答
举报
0/150
提交
取消