我可以用.htaccess禁用对文件的访问,但我不知道如何禁用多个文件的查看(直接,而不是从包含)它们是.php文件,所以我不能禁用文件类型。
.htaccess
.php
<FILES ... ? </FILES>
字符串例如"home.php, file.php, test.php"我如何禁止访问所有三个带有该标签或类似标签的文件?
"home.php, file.php, test.php"
hlswsv351#
如果你想基于正则表达式排除文件,你可以使用FilesMatch而不是Files,例如:
<FilesMatch ^((home|test|file)\.php$|mysecretfolder|asecretpicture\.jpe?g)$> ... </FilesMatch>
字符串
cdmah0mi2#
看起来你必须一个接一个地排除这些文件:
<files home.php> Deny/Allow/Whatever </files> <files file.php> ...
字符串您可以在<files>或something*中使用*.gif,但由于home.php、file.php和test.php不能真正使用“*”分组,这可能是唯一的方法。
<files>
something*
*.gif
mrfwxfqh3#
apache 2.4
<FilesMatch "\.htaccess|config\.php"> Require all denied </FilesMatch>
字符串代替了
<FilesMatch "\.htaccess|config\.php"> Order allow,deny Deny from all </FilesMatch>
型
brgchamk4#
(?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?)
备注:
"\."之前的第一组括号是文件名/模式,"\."之后的第二组括号将确定文件扩展名。随意add/remove文件和文件扩展名到/从我提供给你的例子,以满足您的需要!
"\."
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>
4条答案
按热度按时间hlswsv351#
如果你想基于正则表达式排除文件,你可以使用FilesMatch而不是Files,例如:
字符串
cdmah0mi2#
看起来你必须一个接一个地排除这些文件:
字符串
您可以在
<files>
或something*
中使用*.gif
,但由于home.php、file.php和test.php不能真正使用“*”分组,这可能是唯一的方法。mrfwxfqh3#
apache 2.4
字符串
代替了
型
brgchamk4#
2023年解决方案
一行程序,用于同时检测多个文件和多个文件扩展名,您可以使用以下模式:
字符串
备注:
"\."
之前的第一组括号是文件名/模式,"\."
之后的第二组括号将确定文件扩展名。随意add/remove
文件和文件扩展名到/从我提供给你的例子,以满足您的需要!例如:
匹配多个不同扩展名的文件,返回
"Forbidden"
给用户:型
匹配多个不同文件扩展名的文件,返回
"404"
给用户:型