Apache ProxyPass - Regex для исключения файлов - PullRequest
10 голосов
/ 02 января 2012

Я пытаюсь исключить все файлы, начиная с "dgg -" и заканчивая ". Xml" , пример: dgg-file-1.xml от использования прокси-сервера Apache.

Это работает:

ProxyPass /myfile.xml ! # single file
ProxyPass /directory ! # all files inside dir

Это не работает:

ProxyPass /dgg-(.*)\.xml !

Как мне этого добиться?

ps - я использую этот код внутри httpd.conf->virtualhost , а не .htaccess.

Ответы [ 2 ]

17 голосов
/ 02 января 2012

Используйте ProxyPassMatch. ProxyPass ожидает полностью записанных элементов пути, не принимает регулярные выражения.

Поскольку ProxyPassMatch принимает регулярное выражение, это означает, что вы также должны привязать его:

ProxyPassMatch ^/dgg-[^.]+\.xml$ !
3 голосов
/ 04 ноября 2013

У меня была ситуация, когда я хотел, чтобы с веб-сервера Apache было выбрано несколько изображений, а с сервера приложений было добавлено несколько изображений (в моем случае Jboss). Поэтому я хотел получить одно регулярное выражение, которое нужно было исключить и включить. Вот что я добавил в файл httpd.conf под тегом VirtualHost.

Есть несколько файлов CSS и JS, которые находятся в jsf jar и jenia popup jars, которые мы не найдет на веб-сервере. Поэтому обращайтесь к серверу приложений. Регулярное выражение ищет все URL-адреса * .js и * .css, но исключает любые URL-адреса, в которых есть / jenia4faces и / face. Это нужно для того, чтобы убедиться, что такие сценарии, как этот, /MYWEBAPP/jenia4faces/popup/popupFrame/js/popupFrame.js и /MYWEBAPP/faces/myFacesExtensionResource/tabbedpane.HtmlTabbedPaneRenderer/1130266s.jsdicic_setserseric_setser_setser_app_setser/1130266.js являютсяic. Все остальные .js и .css будут обслуживаться веб-сервером.

  ProxyPassMatch ^(/MYWEBAPP/(?!jenia4faces).*\.js)$ !
  ProxyPassMatch ^(/MYWEBAPP/(?!faces).*\.css)$ !
  ProxyPassMatch ^(/MYWEBAPP/(?!jenia4faces).*\.js)$ !
  ProxyPassMatch ^(/MYWEBAPP/(?!faces).*\.css)$ !

где / MYWEBAPP - корневой контекст моих веб-приложений. Кроме того (?! Лица), чтобы сказать, если URL не имеет "лица" в пути URL.

...