如何排除特定的文件(如txt文件)从RedirectMatch 404在.htaccess文件?

7hiiyaii  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(122)

[Edit:由CBroe在下面的评论中回答]
我已经读了无数关于这个的帖子,但没有一个对我有用。我正在加固我们的www.mta-sts.[maindomain].com子域。对于这个子域,我们只希望有一个页面可以访问,即www.mta-sts.[maindomain].com/. well-known/mta-sts.txt。
此文件位于隐藏目录(即.well-known目录)中。我们希望禁止访问整个子域中的所有隐藏文件和目录,同时从该规则中排除mta-sts.txt文件。
以下规则适用于删除对隐藏文件和目录(源代码)的访问权限:

# deny access to hidden files and directories
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RedirectMatch 404 /\..*$ [L]

如何将mta-sts.txt文件排除在此规则之外?
我们尝试了popular answer(以及其他许多),但它不起作用:

# deny access to hidden files and directories
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteCond %{REQUEST_URI} !^/.well-known/mta-sts\.txt$
RedirectMatch 404 /\..*$ [L]
juzqafwq

juzqafwq1#

感谢评论中的@Cbroe和@MrWhite。
下面是适合我的代码片段(404重定向所有隐藏文件,除了mta-sts.txt文件):

# deny access to hidden files and directories (except mta-sts.txt)
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteCond %{REQUEST_URI} !^/.well-known/mta-sts\.txt$
RewriteRule "(^|/)\." - [R=404,NC,L]

相关问题