2010-11-10 3 views
0

Я действительно застрял в создании RegEx, который исключает возможность перезаписи файлов.Конструкция RegEx для исключения файлов

Я использую Cherokee в качестве веб-сервера и хочу поменять ссылки, такие как http: //example.com/123, на http: //example.com/get.php?short=123.

Моя проблема в том, что я хочу создать переключатель для файлов и файлов.

/([^.]+) => /get.php?short=$1

/([.]+) =>/$ 1

Я думаю, второй исключает первый каким-то образом, но Я не могу это выяснить.

Как исправить это или есть лучшее решение?

Paul

ответ

1

Вы должны были бы добавить более высокий приоритет правила в том же правиле виртуального поведения сервера, с «Exists File» матча. Скорее всего, вы хотите использовать обработчик «Статический контент».

Таким образом, когда правило поведения оценивается, статический файл будет сопоставляться с этим правилом (и отправляется). Всякий раз, когда запрос не нацелен на статический файл, он будет по-прежнему оцениваться против остальных, список поведения, в котором размещается ваше правило регулярного выражения.

Несмотря на то, что некоторые люди по-прежнему используются, список поведения Cherokee намного более интуитивно понятен и эффективен, чем в аналоге Apache (где все определяется вместе с набором параметров одного символа).

Смежные вопросы