Конструкция RegEx для исключения файлов - PullRequest
0 голосов
/ 11 ноября 2010

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

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

.

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

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

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

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

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

Пол

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

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

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

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

0 голосов
/ 11 ноября 2010

Вы, вероятно, хотите:

RewriteCond -f
...