正则表达式允许除一个之外的所有 php 文件

标签 regex .htaccess

我有这个允许所有 php 文件的正则表达式:

^.*\.([Pp][Hh][Pp])

如何排除特定文件,例如 test.php ?

谢谢你的回答, 最好的问候

[编辑] 我省略了说它是来自 htaccess 文件的 reg,/i 似乎不起作用,而 ?两者都不。 [编辑2] 目的是向经过身份验证的用户授予访问权限,但必须允许每个人访问一个文件。 所以我已经完成了:

<Files ~ "^.*\.([Pp][Hh][Pp])$">
AuthUserFile /directory/.htpasswd
AuthGroupFile /dev/null
AuthName "Please log in ..."
AuthType Basic
require valid-user
</Files>

因此,所有 php 文件都需要有效的用户。 我想为特定文件添加异常(exception),test.php 说

最佳答案

您可以使用 negative lookahead :

^(?!test\.php$).*\.([Pp][Hh][Pp])$

最好使用不区分大小写的正则表达式,而不是为每个字母编写诸如 [Pp] 之类的内容。

"/^(?!test\.php$).*\.php$/i"

关于正则表达式允许除一个之外的所有 php 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2880899/

相关文章:

php - preg_match 懒惰?

javascript - 用引号替换双引号

javascript - 如何使用正则表达式匹配 7 个数字或 9 个数字长的验证?

html - .htaccess - 隐藏包含文件的文件夹

php - HTACCESS 将 : Ignore Language code and add index. php 重写到 url 而不更改它

regex - mod_rewrite/重定向与?在查询字符串中

wordpress - WordPress 的 HTTPS 重定向

c - 是否有用于 POSIX 文件名匹配 (fnmatch) 的已知 O(nm)-time/O(1)-space 算法?

javascript - 正则表达式删除除回车符以外的空格

security - 使用 htaccess 重定向子域并保留 URL