我正在尝试排除以“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
中使用此代码。
答案 0 :(得分:16)
使用ProxyPassMatch
。 ProxyPass
期望完全写入路径元素,它不接受正则表达式。
由于ProxyPassMatch
采用正则表达式,这意味着您还必须锚定它:
ProxyPassMatch ^/dgg-[^.]+\.xml$ !
答案 1 :(得分:3)
我遇到的情况是,我希望从Apache网络服务器中挑选几张图片,并且几乎没有图像从应用程序服务器中包含(在我的案例中是Jboss)。 所以我想要一个必须排除和包含的正则表达式。以下是我在VirtualHost标记下添加到httpd.conf文件的内容。
有一些css和js文件在jsf jars和jenia popup jar中我们 在网络服务器上找不到。所以请联系app server。正则表达式正在查找所有* .js和* .css网址,但不包括任何包含/ jenia4faces和/ faces的网址。这是为了确保仍然从应用服务器中提取这样的脚本/MYWEBAPP/jenia4faces/popup/popupFrame/js/popupFrame.js和/MYWEBAPP/faces/myFacesExtensionResource/tabbedpane.HtmlTabbedPaneRenderer/11302665/dynamicTabs.js。休息所有.js和.css将由网络服务器提供。
ProxyPassMatch ^(/MYWEBAPP/(?!jenia4faces).*\.js)$ !
ProxyPassMatch ^(/MYWEBAPP/(?!faces).*\.css)$ !
ProxyPassMatch ^(/MYWEBAPP/(?!jenia4faces).*\.js)$ !
ProxyPassMatch ^(/MYWEBAPP/(?!faces).*\.css)$ !
其中/ MYWEBAPP是我的网络应用根目录。 另外(?!faces)是告诉url路径中的url是否没有“faces”。