织梦dedecms在宝塔面板下设置指定目录禁止运行PHP的方法

如果运行环境是nginx的

在宝塔面板后台-网站,点击你需要设置的网站设置

配置文件里面。找到 #PHP-INFO-START  PHP引用配置,可以注释或修改,在它上面添加:

location ~* /(a|data|templets|uploads)/(.*).(php)$ {
    return 403;
}

其中括号里面的(a|data|templets|uploads)是你需要禁止运行PHP的文件夹名称,你可自行添加或者删除。

如下图所示:

保存。在软件管理里面重启Nginx服务。

随意新建一个PHP文件,文件内容随意,把它上传到你的需要禁止运行PHP的目录里面。如果访问正常,说明配置没有生效。如果显示如下图所示,说明配置成功。

 

如果你的php运行环境是apache,可使用 .htaccess 文件来设置,

RewriteEngine on
#安全设置 禁止以下目录运行指定php脚本
RewriteCond % !^$
RewriteRule a/(.*).(php)$ – [F]
RewriteRule data/(.*).(php)$ – [F]
RewriteRule templets/(.*).(php|htm)$ – [F]
RewriteRule uploads/(.*).(php)$ – [F]

然后把.htaccess文件放到网站根目录下。重启apache服务。

如果运行环境是iis的,用 web.config 文件来设置,请确认你的主机已经开启了伪静态而且网站根目录有 web.config 文件,有这个文件的可以复制以下代码添加到对应的rules内。

 

<rule name="Block data" stopProcessing="true">
    <match url="^data/(.*).php$" />
    <conditions logicalGrouping="MatchAny">
        <add input="{USER_AGENT}" pattern="data" />
        <add input="{REMOTE_ADDR}" pattern="" />
    </conditions>
    <action type="AbortRequest" />
</rule>
<rule name="Block templets" stopProcessing="true">
    <match url="^templets/(.*).php$" />
    <conditions logicalGrouping="MatchAny">
        <add input="{USER_AGENT}" pattern="templets" />
        <add input="{REMOTE_ADDR}" pattern="" />
    </conditions>
    <action type="AbortRequest" />
</rule>
<rule name="Block SomeRobot" stopProcessing="true">
    <match url="^uploads/(.*).php$" />
    <conditions logicalGrouping="MatchAny">
        <add input="{USER_AGENT}" pattern="SomeRobot" />
        <add input="{REMOTE_ADDR}" pattern="" />
    </conditions>
    <action type="AbortRequest" />
</rule>

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: