Php htaccess块请求,其中uri以句点或下划线开头

Php htaccess块请求,其中uri以句点或下划线开头,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,我正试图使用.htaccess文件阻止对我的项目的恶意请求。我有一些要被用户代理阻止的RewriteCond,但我现在想处理包含路径以或\uuuucode>开头的请求 作为一个例子,我想阻止这些: https://my.project.url/.web https://my.project.url/_backup 但我想允许这些: https://my/api/version/current_product https://my.project.url/something.php 我有一些表达式

我正试图使用.htaccess文件阻止对我的项目的恶意请求。我有一些要被用户代理阻止的
RewriteCond
,但我现在想处理包含路径以
\uuuucode>开头的请求

作为一个例子,我想阻止这些:
https://my.project.url/.web
https://my.project.url/_backup

但我想允许这些:
https://my/api/version/current_product
https://my.project.url/something.php

我有一些表达式可以阻止对公共端点的请求:
RewriteRule^.*wp admin-[NC,F]

但我不知道如何开始修改它来阻止新的垃圾邮件请求。

以下是我的想法,它适用于我的用例:
重写规则(.*\/\.\.*\/\-[NC,F]

翻译: 如果路径的任何部分包含
/.
/.
则禁止请求

RewriteRule .*/[\._].* - [F]

这更容易阅读。不需要NC,因为两者都不需要。或者uuu有一个案例,其他所有内容都是通配符。

^.*wp admin
在wp admin之前是
任何内容。是
/
您的基础,如果是
^[.-]
应该是以
-
开头。这就是问题所在,基础不是静态的。理想情况下,我希望
my.project.url/\u备份
my.project.url/valid\u uri/\u invalid\u此处
都被阻止。您不需要在字符类中转义
。因为我做了很多贝壳类的事情,所以我尽量避免使用不同的方法,也就是说,如果我能做到的话,我会尽量遵循一条规则,即逃跑。在gawk、sed、bash、ApacheRegex、php regex等中总是这样,但最好指出,在这种情况下不需要它,尽管多年的gawk/bash让我学会了始终要具体,即使只是为了可读性。。