不允许从父文件夹访问 CSS 文件夹的 php 执行


Dissallow php execution for CSS folder with htaccess from parentfolder

我有一个问题。我想让一位客户通过 FTP 访问我的网上商店的 CSS 文件夹。我试图阻止在此文件夹中运行 PHP,但它不起作用。我认为我的问题是,我不想在css文件夹中添加另一个.htaccess。我必须使用主目录中的 .htaccess 文件来处理这个问题。

我试过这个

RewriteRule ^css/*'.php$ /404.php [NC,L]

。但它不起作用。我的服务器正在 css 文件夹中执行 php 文件。有人知道如何防止执行位于子文件夹中的 php 文件吗?更好的解决方案是,只允许特定文件夹中的文本/css。

信息:我正在使用Plesk。

更好的方法是,如果您不希望它运行,只需在该目录中关闭 PHP......虽然允许这将意味着额外的.htaccess文件。然而,它也会阻止PHP在.phtml文件之类的东西中运行 - 我会说它比404-ing任何东西更万无一失.php

您可以在 .htaccess 中设置 PHP 布尔类型设置,并带有php_flag

在这种情况下,在相关的 .htaccess 文件中:

php_flag engine off

正如Mike Rockett指出的那样 - 由于用户可以FTP访问该文件夹,因此您需要更改.htaccess文件(CHOWN)的所有权,以防止用户篡改或删除它。

您需要使用正则表达式,而不是通配符。将*替换为 (.*)

RewriteEngine on
RewriteRule ^css/(.*).php$ /404.php [NC,L]   

您可以使用以下内容作为替代方法:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} ^/css/
RewriteRule (.*).php /404.php [L]

但是,我建议您明确表示拒绝访问该文件:

RewriteRule (.*).php - [F,L]