要通过伪静态规则禁止上传目录 uploadfile
下的 PHP 脚本执行权限,请根据你的服务器类型(Apache 或 Nginx 或 **IIS选择以下配置方法:
一、Apache 服务器(使用 .htaccess
文件)
在
uploadfile
目录下创建或修改.htaccess
文件。添加以下规则(根据 Apache 版本选择配置):
Apache 2.4+ 语法:
<IfModule mod_authz_core.c> <FilesMatch "\.php$"> Require all denied </FilesMatch> </IfModule>
Apache 2.2 及以下语法:
<FilesMatch "\.php$"> Deny from all </FilesMatch>
确保服务器允许
.htaccess
覆盖配置(主配置需设置AllowOverride All
)。
二、Nginx 服务器
在 伪静态配置中添加以下规则:
location ~ ^/uploadfile/.*\.php$ { deny all; return 403; }
三、IIS服务器通过 web.config
文件配置
在
uploadfile
目录下创建或修改web.config
文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <!-- 拒绝所有对 PHP 文件的请求 --> <security> <requestFiltering> <fileExtensions> <add fileExtension=".php" allowed="false" /> </fileExtensions> </requestFiltering> </security> <!-- 可选:通过 URL 重写返回 403 --> <rewrite> <rules> <rule name="Block PHP in Upload" stopProcessing="true"> <match url="^uploadfile/.*\.php$" /> <action type="CustomResponse" statusCode="403" statusReason="Forbidden" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
保存文件,并确保 IIS 已启用以下模块:
请求过滤(Request Filtering)
URL 重写(URL Rewrite)(如果使用重写规则)
三、验证配置
上传一个测试文件
test.php
到uploadfile
目录。尝试通过浏览器访问该文件(如
http://yourdomain.com/uploadfile/test.php
)。如果返回 403 Forbidden 错误,则配置生效。
相关文章