Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/08/2008, 19h48   #1
Invité de passage
 
Inscription : août 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 2
Points : 0
Points : 0
Par défaut url rewriting Apache tomcat javascript liferay

Bonjour,
Bien qu'ayant parcouru le forum et bien aidé dans mes redirection , j'ai un probleme pour l'écriture d'un rewrite et votre aide serait grandement appreciée.

Ma config :
Serveur apache configuré pour du reverse proxy entre une IP Publique ( Pas de DNS) et intranet

mon mod_proxy.conf est celui-ci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
ProxyRequests Off
SetOutputFilter proxy-html
ProxyPass / http://intranet:8080/
ProxyPassReverse / http://intranet:8080/
ProxyHTMLURLMap http://intranet:8080/ /

<Location />
  ProxyPassReverse /
ProxyHTMLExtended On
  ProxyHTMLURLMap /               /
  ProxyHTMLURLMap /intranet:8080/       /
 RequestHeader unset Accept-Encoding
</Location>
Par contre je n'arrive a rien lorsque la cde suivante est envoyée, il ne me remplace as intranet:8080

Code :
javascript:%20submitForm(document.hrefFm,%20'http://intranet:8080/web/invite/dgs?p_p_id=49&p_p_action=1&p_p_state=normal&p_p_mode=view&_49_struts_action=%2Fmy_places%2Fview&_49_groupId=10501&_49_privateLayout=false');
le serveur intranet est LIFERAY

Merci de votre aide
alpha13fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2008, 08h34   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 314
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 314
Points : 8 597
Points : 8 597
Citation:
Envoyé par alpha13fr Voir le message
Par contre je n'arrive a rien lorsque la cde suivante est envoyée, il ne me remplace as intranet:8080
C'est normal, mod_proxy ne sait pas réécrire le contenu HTML renvoyé au navigateur. Normalement, c'est à toi de faire en sorte que le contenu HTML renvoyé au navigateur soit le bon mais tu peux utiliser un autre module (si tu as la main sur le reverse proxy) qui fait également des corrections dans le code HTML : mod_proxy_html.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2008, 01h26   #3
Invité de passage
 
Inscription : août 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 2
Points : 0
Points : 0
Merci,
J'ai regardé du coté des opérateurs et je patauge grave
Sans vouloir abuser, vous auriez pas une petite piste pour remplacer "http://intranet:8080/" par "http://IP/" ?

Merci
alpha13fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2008, 13h39   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 314
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 314
Points : 8 597
Points : 8 597
Oui : éditer le fichier HTML et remplacer "http://intranet:8080/" par "http://IP/" ou bien installer et utiliser mod_proxy_html. Pour la première solution, qui est de très loin la plus simple, le mieux c'est d'utiliser une URL relative (sans http://...) : ça évite d'avoir à se prendre la tête avec le nom ou l'IP du serveur. Si ce n'est pas possible, et si la page est générée dynamiquement (i.e. il s'agit d'une page PHP, JSP, etc.), soit tu construis l'URL absolue en récupérant le nom du serveur avec $_SERVER["HTTP_HOST"] en PHP par exemple :
Code :
javascript:%20submitForm(document.hrefFm,%20'http://<?php echo $_SERVER["HTTP_HOST"]; ?>/web/invite/dgs?p_p_id=49&p_p_action=1&p_p_state=normal&p_p_mode=view&_49_struts_action=%2Fmy_places%2Fview&_49_groupId=10501&_49_privateLayout=false');
A noter que dans ce cas, il faut configurer mod_proxy sur le premier serveur pour qu'il renvoie la bonne valeur, donc ajouter ceci dans la conf de mod_proxy :
Soit tu configures une variable globale que tu appelles partout où tu en as besoin et qui vaut l'IP :
Code :
1
2
3
4
$NOM_SERVEUR = "12.34.56.78";
$PORT_SERVEUR = "8080";
...
javascript:%20submitForm(document.hrefFm,%20'http://<?php echo $NOM_SERVEUR.":".$PORT_SERVEUR; ?>/web/invite/dgs?p_p_id=49&p_p_action=1&p_p_state=normal&p_p_mode=view&_49_struts_action=%2Fmy_places%2Fview&_49_groupId=10501&_49_privateLayout=false');
Cette façon de faire permet de n'avoir à changer le nom du serveur qu'à un seul endroit si tu installes ton truc sur un autre environnement.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h47.


 
 
 
 
Partenaires

Hébergement Web