obsłużyć wszystkie żądania za pośrednictwem proxy * oprócz * określonego

11

Mam następujące w moim httpd.conf

<VirtualHost *:80>
    ServerName foo.org
    ServerAlias www.foo.org

    <Proxy *>
        Options FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        AllowOverride All
    </Proxy>

    ProxyPass        / http://127.0.0.1:5012/
    ProxyPassReverse / http://127.0.0.1:5012/
</VirtualHost>

Działa to dobrze, gdy wszystkie żądania dotyczące http://foo.org są obsługiwane z portu 5012 przy użyciu innego serwera WWW. Chcę jednak podawać tylko http://foo.org/lib przez Apache z portu 80. Jak to zrobić? Dodanie następujących wierszy do konf nie pomaga

Alias /lib /path/to/lib

<Directory "/path/to/lib">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
punkowy
źródło

Odpowiedzi:

18

Możesz uniknąć zastępowania określonej lokalizacji, mówiąc, mod_proxyaby zignorować ją !dla celu:

ProxyPass        /lib !
ProxyPass        / http://127.0.0.1:5012/
ProxyPassReverse / http://127.0.0.1:5012/
Shane Madden
źródło
niesamowite! to było takie proste! Próbowałem NoProxyi ProxyMatch with various regexpsbezskutecznie. Dzięki.
punkish