Apache rewrite rules behind a nginx proxy

Posted by Tuinslak on Server Fault See other posts from Server Fault or by Tuinslak
Published on 2011-01-12T17:34:42Z Indexed on 2011/01/12 17:55 UTC
Read the original article Hit count: 210

Hi,

I am running nginx (:80) in front of an Apache webserver (:8080)

Nginx config (snippet):

location / {
    proxy_pass        http://www.domain.tld:8080;
    proxy_set_header  X-Real-IP  $remote_addr;

If I set localhost instead of www.domain.tld, my browser gets redirect to http://localhost:8080.

Apache rewrite rules:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://%{HTTP_HOST}/$1/ [L,R=301]

RewriteCond %{REQUEST_URI} !v2/
RewriteRule ^(.*)$ v1/$1 [L]

So far, so good.

However, every link (which uses relative paths) appears as http://www.domain.tld:8080/page instead of staying on port 80.

Is there any way to solve this through the rewrite rules? I don't want to use absolute paths.

Thanks

© Server Fault or respective owner

Related posts about apache2

Related posts about mod-rewrite