регулярное выражение, которое начинается с "/ start /", но не заканчивается на "end1" или "end2" - PullRequest
1 голос
/ 24 октября 2011

Я пытался сформулировать регулярное выражение для использования с директивой «Location» конфигурации веб-сервера Apache внутри файла httpd.conf.

<Location ~ "/start/.*(?!end1|end2)$"> 
    Order Deny,Allow
    Deny from all
    Allow from foo.com
</Location> 

Однако в лог-файле Apache я получил следующую ошибку:

Syntax error on line 1179 of c:/apache/apache/conf/httpd.conf:
Regex could not be compiled

Я знаю, что ошибка, вероятно, в разделе "Негативный взгляд": (?! End1 | end2), но не может точно выяснить. Спасибо

Ответы [ 2 ]

1 голос
/ 24 октября 2011

Apache 1.x использует расширенные регулярные выражения POSIX и с этими выражениями

lookaround не поддерживается.

Итак, ваша проблема лежит здесь: (?!end1|end2)

0 голосов
/ 24 октября 2011

Прямой слеш, как правило, необходимо экранировать:

 "\/start\/.*(?!end1|end2)$"
...