.htaccess是否拒绝访问特定文件?不止一个

zbdgwd5y  于 2023-08-06  发布在  其他
关注(0)|答案(4)|浏览(149)

我可以用.htaccess禁用对文件的访问,但我不知道如何禁用多个文件的查看(直接,而不是从包含)
它们是.php文件,所以我不能禁用文件类型。

<FILES ... ? 

</FILES>

字符串
例如"home.php, file.php, test.php"我如何禁止访问所有三个带有该标签或类似标签的文件?

hlswsv35

hlswsv351#

如果你想基于正则表达式排除文件,你可以使用FilesMatch而不是Files,例如:

<FilesMatch ^((home|test|file)\.php$|mysecretfolder|asecretpicture\.jpe?g)$>
...
</FilesMatch>

字符串

cdmah0mi

cdmah0mi2#

看起来你必须一个接一个地排除这些文件:

<files home.php>
Deny/Allow/Whatever
</files>
<files file.php>
...

字符串
您可以在<files>something*中使用*.gif,但由于home.php、file.php和test.php不能真正使用“*”分组,这可能是唯一的方法。

mrfwxfqh

mrfwxfqh3#

apache 2.4

<FilesMatch "\.htaccess|config\.php">

    Require all denied

</FilesMatch>

字符串
代替了

<FilesMatch "\.htaccess|config\.php">

    Order allow,deny 
    Deny from all 

</FilesMatch>

brgchamk

brgchamk4#

2023年解决方案

一行程序,用于同时检测多个文件和多个文件扩展名,您可以使用以下模式:

(?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?)

字符串

备注:

"\."之前的第一组括号是文件名/模式,"\."之后的第二组括号将确定文件扩展名。随意add/remove文件和文件扩展名到/从我提供给你的例子,以满足您的需要!

例如:

匹配多个不同扩展名的文件,返回"Forbidden"给用户:
<FilesMatch "(?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?)">
      Require all denied
</FilesMatch>

匹配多个不同文件扩展名的文件,返回"404"给用户:

<FilesMatch "(?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?)">
      Redirect 404
</FilesMatch>

相关问题