【问题标题】:Deny access multiple .php files with .htaccess? [duplicate]拒绝使用 .htaccess 访问多个 .php 文件? [复制]
【发布时间】:2012-07-30 08:38:36
【问题描述】:

我想拒绝访问目录 /all/cstl/ 中的多个 PHP 文件。

我的 .htaccess 也存放在这个目录中。

这是我当前的代码,它不起作用。

<Files "\ (config.php|function.php|include.php)">
  Order allow,deny
  Deny from all
</Files>

我试图拒绝该目录并允许特定文件,但它拒绝该目录并且不允许请求的 .php 文件。我的代码是:

<Directory />
    Order deny,allow
    Deny from all
<Directory>

<Files "index.php|post.php">
    Order deny,allow
    Deny from all
</Files>

请给我一些阻止访问目录中多个特定文件的示例。

【问题讨论】:

  • 按目录阻止和按文件允许它也不起作用...
  • 您需要添加 ~ 才能使用表达式。即&lt;Files ~ "index.php|post.php"&gt; Order deny,allow Deny from all &lt;/Files&gt;

标签: php security .htaccess


【解决方案1】:

您那里的 .htaccess 存在几个问题。

正如上面评论中链接的 Bsen,您应该使用 FilesMatch。 另外,你的正则表达式是错误的。

正则表达式的问题是您在开头有一个转义空格,因此所有文件都必须以空格字符开头(后跟 config.php、function.php 等之一)

还有一个关于 Order allow,deny 指令的小解释: http://www.maxi-pedia.com/Order+allow+deny

试试这个:

<FilesMatch "config\.php|function\.php|include\.php">
  Order allow,deny
  Deny from all
</FilesMatch>

如果您想拒绝除少数文件之外的所有文件,则应为

Order deny,allow
Deny from all
<FilesMatch "index\.php|index\.html">
  Allow from all
</FilesMatch>

【讨论】:

    猜你喜欢
    • 2019-04-07
    • 1970-01-01
    • 2012-09-23
    • 2017-08-14
    • 1970-01-01
    • 2018-02-05
    • 2015-01-26
    • 1970-01-01
    • 2011-05-11
    相关资源
    最近更新 更多