Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dissallow php通过从parentfolder访问htaccess执行CSS文件夹_Php_Apache_.htaccess - Fatal编程技术网

Dissallow php通过从parentfolder访问htaccess执行CSS文件夹

Dissallow php通过从parentfolder访问htaccess执行CSS文件夹,php,apache,.htaccess,Php,Apache,.htaccess,我有个问题。我想让一个客户通过FTP访问我的网店的CSS文件夹。我试图阻止在这个文件夹中运行PHP,但它不起作用。我想我的问题是,我不想在css文件夹中添加另一个.htaccess。我必须使用主目录中的.htaccess文件来处理这个问题 我试过这个 RewriteRule ^css/*\.php$ /404.php [NC,L] 。。。但它不起作用。我的服务器正在执行css文件夹中的php文件。 有人知道如何防止执行位于子文件夹中的php文件吗?更好的解决方案是,只允许在特定文件夹中使用te

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

我试过这个

RewriteRule ^css/*\.php$ /404.php [NC,L]
。。。但它不起作用。我的服务器正在执行css文件夹中的php文件。 有人知道如何防止执行位于子文件夹中的php文件吗?更好的解决方案是,只允许在特定文件夹中使用text/css


信息:我正在使用Plesk。

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

您可以使用以下选项作为备选方案:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} ^/css/
RewriteRule (.*).php /404.php [L]
但是,我建议您明确拒绝访问该文件:

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

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

您可以使用以下选项作为备选方案:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} ^/css/
RewriteRule (.*).php /404.php [L]
但是,我建议您明确拒绝访问该文件:

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

一个更好的方法是,如果您不想让PHP运行,只需关闭该目录中的PHP。。。虽然这意味着需要额外的.htaccess文件。然而,它也会阻止PHP在类似.phtml的文件中运行——我认为它比404.PHP更简单

您可以在.htaccess中使用
PHP\u标志设置PHP布尔类型设置

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

php_flag engine off

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

更好的方法是,如果不希望该目录运行,只需关闭该目录中的PHP即可。。。虽然这意味着需要额外的.htaccess文件。然而,它也会阻止PHP在类似.phtml的文件中运行——我认为它比404.PHP更简单

您可以在.htaccess中使用
PHP\u标志设置PHP布尔类型设置

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

php_flag engine off

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

/*
表示“0个或更多斜杠字符”。重写使用正则表达式,而不是普通通配符。
/*
表示“0个或多个斜杠字符”。重写使用正则表达式,而不是普通的通配符。好主意,但是用户可以很容易地删除
.htaccess
文件,因为他可以通过FTP访问目录。@MikeRockett Fair point-除非你对该文件进行重读并拒绝他们访问。这也是正确的。好主意,但是用户可以很容易地删除
.htaccess
文件,因为他可以通过FTP访问目录。@MikeRockett Fair point-除非您删除该文件并拒绝他们访问该文件。这也是事实。谢谢。“重写规则(.*.php-[F,L]”是一个好方法。可以将筛选器还原为“!css”,而不是搜索php文件。谢谢。“重写规则(.*.php-[F,L]”是一个好方法。可以将筛选器还原为“!css”,而不是搜索php文件。