2017-09-13 9 views
0

j'avais une page approximé: http://destsrv:8089/index.html Il contient lien vers un chemin absolu comme: href="/static/bootstrap/css/bootstrap.min.css"Nginx proxy_pass emplacement des chemins absolus

Et nginx est configuré comme:

location /admin/ { 
       proxy_pass http://destsrv:8089/; 
     } 

Bien que lors de l'accès au http://myproxy/admin/index.html il est essayer d'obtenir .css de: http://myproxy/static/bootstrap/css/bootstrap.min.css

Mais attendu est: http://myproxy/admin/static/bootstrap/css/bootstrap.min.css

Comment faire?

Répondre

1

Essayez cette

location /admin/ { 
    proxy_pass http://destsrv:8089/; 
    sub_filter_once off; 
    sub_filter "http://destsrv:8089/" "$scheme://$host/admin"; 
    sub_filter 'href="/' 'href="/admin/'; 
    sub_filter "href='/" "href='/admin/"; 
} 

Vous voulez essentiellement de fixer les urls en utilisant des filtres

+0

Merci! Ça fonctionne! – hades

+0

Qu'en est-il du type de liens href = "// sth"? Est-il possible de définir une règle qui ne les touche pas en remplaçant href = "/ sth" en même temps? – hades

+0

Essayez ce 'sub_filter '' ' \ n ';'. Enlevez les autres href –