Apache:在目录中禁用php

use*_*218 1 php apache

我想在我的服务器上的目录中禁用php.我认为在httpd.conf中设置Options -ExecCGI会阻止php脚本被执行,但显然我错了.

所以,这就是我在httpd.conf中的内容,它显然不起作用:

<Directory "C:/xampp/htdocs/(path_to_directory)/dirname">
    Options -ExecCGI
    AllowOverride None
</Directory>
Run Code Online (Sandbox Code Playgroud)

问题是,如何防止PHP脚本在特定文件夹中执行?可以在httpd.conf中完成,还是必须使用.htaccess文件?

小智 9

php_flag engine off仅当您使用mod_php(以及mod_php7.x)时才有效php-fpm

似乎您正在使用php-fpm,因此将更多行添加到httpd.conf

<Directory "C:/xampp/htdocs/(path_to_directory)/dirname">
<FilesMatch ".+\.*$">
SetHandler !
</FilesMatch>
</Directory>
Run Code Online (Sandbox Code Playgroud)

.htaccess目录中的这些您不希望执行 PHP:

<FilesMatch ".+\.*$">
SetHandler !
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

我已经在 Unix 平台而不是 Windows 上测试过它,希望它会帮助你。

  • 由于服务器配置,其他解决方案对我不起作用。`Sethandler !` 为我工作! (2认同)

Dip*_*pak 7

你可以用.htaccess文件做到这一点.你需要将.htaccess文件放在你不想用以下htaccess代码执行php的文件夹中.

<Files *.php>
deny from all
</Files>
Run Code Online (Sandbox Code Playgroud)

更多细节见http://www.wpbeginner.com/wp-tutorials/how-to-disable-php-execution-in-certain-wordpress-directories/

您也可以尝试禁用.htaccess文件中的引擎选项:

php_flag engine off
Run Code Online (Sandbox Code Playgroud)