我有子目录'images',权限为777,可以从访问者上传图片 在此文件夹中有.htaccess文件以防止脚本执行和更高的安全性
<Files ^(*.jpeg|*.jpg|*.JPEG|*.JPG|*.png|*.gif)>
order deny,allow
deny from all
</Files>
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>
但是当我在浏览器中请求images / page.php时,它正在工作,这意味着.htaccess无法正常工作。 我想阻止此文件夹出现可执行文件。
我的.htaccess文件中是否有任何错误
答案 0 :(得分:0)
当然,您可以访问所有.php文件,因为您只是禁止访问图像文件。我认为在第一个正则表达式的末尾也应该有一个$。也许你的意思是这样的:
<Files *>
order deny,allow
deny from all
</Files>
<Files ^(*.jpeg|*.jpg|*.JPEG|*.JPG|*.png|*.gif)$>
order deny,allow
allow from all
</Files>
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>
答案 1 :(得分:0)
此处还有一条评论,我建议您对脚本规则进行不区分大小写的检查,即:
<FilesMatch "(?i)\.(php5|php4|php|php3|php2|phtml|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>
这适用于我们的服务器。