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

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

QQ截图20180726155817

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

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

其中红色文字是你需要禁止运行PHP的文件夹名称,你可自行添加或者删除。

如下图所示:
QQ截图20180726155905

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

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

QQ图片20180726160547

 

如果你的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服务。

使用windows服务器的,用 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>

 

THE END