10

「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 not .htaccess内でこのコードを使用しています。

4

2 に答える 2

17

を使用しProxyPassMatchます。ProxyPass完全に記述されたパス要素が必要ですが、正規表現は受け入れません。

正規表現を取るので、これProxyPassMatchはそれを固定する必要があることも意味します:

ProxyPassMatch ^/dgg-[^.]+\.xml$ !
于 2012-01-02T13:50:09.470 に答える
3

Apache Web サーバーからいくつかの画像を選択し、アプリケーション サーバー (私の場合は Jboss) からいくつかの画像を含めたいという状況がありました。したがって、除外と包含の両方が必要な 1 つの正規表現が必要でした。VirtualHost タグの下の httpd.conf ファイルに追加したものを次に示します。

jsf jar と jenia ポップアップ jar には、Web サーバーでは見つからない css と js ファイルがいくつかあります。そのため、アプリ サーバーにアクセスします。正規表現はすべての *.js および *.css URL を検索しますが、/jenia4faces および /faces を含む URL は除外します。これは、 /MYWEBAPP/jenia4faces/popup/popupFrame/js/popupFrame.js や /MYWEBAPP/faces/myFacesExtensionResource/tabbedpane.HtmlTabbedPaneRenderer/11302665/dynamicTabs.js などのスクリプトが引き続きアプリ サーバーからプルされるようにするためです。残りのすべての .js と .css は Web サーバーによって提供されます。

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

ここで、/MYWEBAPP は Web アプリのルート コンテキストです。また、(?!faces) は、URL パスに「顔」が含まれていないかどうかを示します。

于 2013-11-04T17:24:36.253 に答える