Bonjour,

J'ai développé une application ASP.NET MVC3, disponible sur 2 points d'entrée.

Par un accès direct pour les utilisateurs LAN. (ex: http://192.168.1.1/)

Par une adresse externe pour les utilisateurs WAN. (ex: http://myserver.mycompany.com/myapplication/)

Pour les utilisateurs WAN, mon point d'entrée est un serveur Web Apache, qui me sert de reverse proxy pour atteindre mon serveur IIS.

Ci-dessous ma configuration Apache:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<VirtualHost *:80>
    ServerName myserver.mycompany.com
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass /myapplication/ <a href="http://192.168.1.1:8087/" target="_blank">http://192.168.1.1:8087/</a>
    ProxyPassReverse /myapplication/ <a href="http://192.168.1.1:8087/" target="_blank">http://192.168.1.1:8087/</a>
</VirtualHost>
Lorsque j'utilise un <%: Url.Content ("~/css/style.css")%> par exemple, derrière le reverse proxy, l'URL générée est la suivante:
http://myserver.mycompany.com/css/style.css

L'URL correcte devrait être:
http://myserver.mycompany.com/myappl.../css/style.css

Même problème avec l'URL générées par Url.Action, Html.BeginForm, etc ..

Comment régler le problème?

J'ai lu la solution du mod_proxy_html, mais celle-ci ne fonctionne que partiellement.

J'ai également remarqué que quand je faisait un <%= Request.RawUrl %>, celui-ci me retournait derrière le reverse proxy "/" et non "/myapplication/". Je crois que l'adresse générée par cette instruction est également celle qui sert pour la génération des liens sur le moteur asp.net.

Il y a-t-il des entetes particulières à envoyer afin que le moteur asp.net comprenne qu'il faut se baser sur le repertoire "/myapplication/" pour racine et non "/" ?

Merci d'avance.