Регулярное выражение для поиска последней точки в URI запроса - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь написать регулярное выражение для конфигурации виртуального хоста apache, которое отобразит запрос, если URI не имеет определенных расширений. Ниже выражения, которое я написал.

^\/bookdata\/.+\.(?!jpg|mp3|mp4|zip|doc|pdf|xls|xlsx).*$

Ниже URI не соответствует этому выражению, что совершенно нормально.

/bookdata/rw0/media/Q2e_00_RW_U08_Q_Classroom.mp3?fd=1

Моя проблема с URI ниже, который соответствует этому выражению из-за двух точек.

/bookdata/rw0/media/ELM2_U02_Track06_Chart2.8.mp3?fd=1

Любая маленькая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Как я знаю, URI запроса не содержит параметров запроса (после знака вопроса) Таким образом, вы можете пропустить. * В конце своего регулярного выражения, тогда вы можете соответствовать своему предпочтительному uris. Это происходит потому, что вы говорите, что ваш конец URI этим расширением не должен совпадать.

0 голосов
/ 10 января 2019

Поставь нег. с нетерпением жду начала, вот так

^(?!.*\.(?:jpg|mp3|mp4|zip|doc|pdf|xls|xlsx))\/bookdata\/.+$

См. демо на regex101.com .

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