Regex, чтобы разрешить все файлы PHP, кроме одного - PullRequest
2 голосов
/ 21 мая 2010

У меня есть это регулярное выражение, разрешающее все файлы php:

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

как я могу исключить определенный файл, например test.php?

Спасибо за ваш ответ, С наилучшими пожеланиями

[править] Я опускаю, чтобы сказать, что это рег из файла htaccess, / я не работает, а? ни. [Edit2] Цель - предоставить доступ аутентифицированным пользователям, за исключением одного файла, который должен быть разрешен для всех. Итак, я сделал:

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

Итак, для всех php-файлов требуется действительный пользователь. Я хотел бы добавить исключение для конкретного файла, говорит test.php

Ответы [ 2 ]

5 голосов
/ 21 мая 2010

Вы можете использовать негативный взгляд :

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

Возможно, было бы лучше использовать регистрозависимое регулярное выражение вместо написания таких слов, как [Pp] для каждой буквы.

"/^(?!test\.php$).*\.php$/i"
0 голосов
/ 21 мая 2010

Не лучше ли в этом случае реализовать проверку без регулярных выражений?

UPD:

просто добавьте вторую директиву для исключенного файла следующим образом:

<Files "test.php">
Satisfy Any
Allow from all
</Files>

Это обеспечит доступность test.php для всех пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...