apache rewrite proxy problem
I'm trying to convert some static reverse ProxyPass rules into a rewrite with regex (since ProxyPass doesn't support much regex).
I'd like to convert URL requests for /myurl/path1/path2/* to be proxied to: http://www.example.com/dir1/dir2/path1-path2/* So I try: Code:
RewriteRule ^/myurl/(\w+)/(\w+)/(.*)$ http://www.example.com/dir1/dir2/$1-$2/$3 When I try a /myurl/etc. request in a browser, I don't get an error, I don't see anything in the apache logs except for a rewrite proxy pass to the proper back-end, but in the browser, I get an error, and it's trying to connect to the back-end but can't: Server not found Firefox can't find the server at www.example.com. The target URL on the destination host is definitely reachable via the proxy host (tested via wget). Am I screwing up something in the regex? |
if you want to stick with mod_proxy the you can use regexes just fine with ProxyPassMatch
as for the rewrite, are you getting a 302 back from it? what does it say? firebug or a few "curl -v"s are your friends. |
Quote:
Quote:
File does not exist: /var/www/html/myurl The corresponding server rewrite entry is: (1) pass through /myurl/dir1/dir2 A wget from the proxy server itself to a target URL completes successfully. So there must be a screw-up in the regex rule? |
This turned out not to be a regex problem at all (that part was actually correct), but the dreaded 'trailing slash' problem. Once I added another rewrite before this one to turn a directory request not ending with `/` to include the `/`, this worked fine.
|
All times are GMT -5. The time now is 11:30 PM. |