2012-01-02 1 views
9

を除外:DGG-FILE-1.xmlを Apacheを使用してから、プロキシアパッチはProxyPass - 私はたとえば、<strong>"dgg-"</strong>と<strong>"の.xml"</strong>で終わるで始まるすべてのファイルを除外しようとしているファイルの正規表現

これは動作します:

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

これは動作しません:

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

は、どのように私はこれを達成することができますか?私はhttpd.conf->virtualhostない.htaccessの内側にこのコードを使用してい

PS-。

+0

「動作しません」と定義しますか?ファイルにはほかに何が入っていますか? – fge

答えて

13

ProxyPassMatchを使用してください。 ProxyPassは完全に書かれたパス要素を期待していますが、正規表現を受け入れません。 ProxyPassMatchとして

は、正規表現をとり、これはあなたにもそれを固定しなければならないことを意味:

ProxyPassMatch ^/dgg-[^.]+\.xml$ ! 
+0

これは私が必要としていたものです。ありがとう! –

2

私はいくつかの画像は、アプリケーションサーバーから含まれるApacheウェブサーバといくつかの画像から取り出すことがしたかった状況がありました(私の場合はJboss)。 私は除外しなければならない正規表現が1つ必要でした。ここで、VirtualHostタグの下にhttpd.confファイルに追加したものを示します。

私たち がウェブサーバ上で見つからないjsf jarsとjeniaポップアップジャーにあるいくつかの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がurlパスに "faces"を持っていないかどうかを調べることです。

+1

ありがとうございます!ありがとうございました!ありがとうございました! 私はApache 2.4をphp5-fpmで、ProxyPassMatchをfcgiに使用しています。しかし、フォルダがパスされるのを除外すると、ますますイライラしていました。解決のためにある時間を検索した後、これはついにトリックをしました。 (例えば、Drupalのインストールで、ファイルフォルダがPHPの実行を許可してはならない場合): 'ProxyPassMatch ^(/ sites/default/files /(。* \ php(/ (*。?)?)))))$! ' ' ProxyPassMatch^/(。*)php(/.*)?)$ fcgi://127.0.0.1:8000/var/www' 'AddHandler php5-fcgi .php ' – casafred

+0

あなたのために働いてうれしいcasafred !! – Reddymails

関連する問題

 関連する問題