Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3505 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] VirtualHost et RewriteRule

 

 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] VirtualHost et RewriteRule

n°2031739
mikeleetor​is
Posté le 23-10-2010 à 19:57:23  profilanswer
 

Bonjour,
 
J'ai un souci conceptuel! Je suis un (presque!) noob en configuration complexe d'Apache.  
J'ai parcouru certains threads du forum traitant des RewriteRule, la doc chez Apache.org
Je comprends bien les concepts des Rewrite d'URL à la volée, mais sur ce cas concret, je sèche...  
 
Dans le cadre d'une prestation je dois installer un serveur Web déjà tout pré-paramétré. C'est très confortable jusqu'à un certain point: lorsqu'on arrête la phase de test en interne pour basculer sur les accès externes.
 
Le contexte technique est le suivant:

  • Pas d'hébergement externe, le serveur tourne sur un linux dans le LAN, avec un nom FQDN type srv.dom.int.
  • Pas de nom de domaine externe réservé ou d'adresse IP publique externe réservée: un dyndns pointe vers le routeur et une translation NAT de port amène les visiteurs WAN sur la bonne IP interne et le port HTTPS 443.


Depuis que j'installe (benoîtement, sans me compliquer la vie) des serveurs Apache, je n'ai jamais rencontré aucun souci entre les accès internes et externes. Pas plus que lorsque les ports sont translatés par du NAT. Donc, normalement, que l'on fasse:

On accède aux pages et Apache de tout s'occupe! Sur le navigateur, l'URL reste bien:

Ceci sans que je n'ai paramétré quoi que ce soit.
 
Or, le site Web tout pré-paramétré est géré dans un VirtualHost qui récupère tous les accès en HTTPS par la directive:

NameVirtualHost *:443
<VirtualHost *:443>
...
</VirtualHost>

A l'intérieur, ils ont placé une directive RewriteRule qui force le nom de site/domaine des pages??? Telle que:

RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/https/srv.dom.int:443/$1 [L,P]

Tout fonctionne en interne, mais, forcément quand on accède de l'extérieur, on démarre par l'URL https://my.dyndns.org:9999 en premier et ça bloque puisque le serveur renvoie une URL de page en https://srv.dom.int ... Si je change la RewriteRule par:

RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/https/my.dyndns.org\:9999/$1 [L,P]

Ca fonctionne alors très bien depuis l'extérieur mais plus du tout en interne.
 
Mes questions sont les suivantes:

  • A quoi sert ce genre de RewriteRule?!?! Puisque lorsqu'on ne paramètre rien, Apache, de lui-même, s'occupe de garder correctement la base de l'URL d'origine.
  • Comment garder intègre le plus possible le serveur (puisque normalement je ne suis pas censé farfouiller dedans!) pour obtenir des accès cohérents entre requêtes internes et externes?


Merci par avance de vos conseils


Message édité par mikeleetoris le 24-10-2010 à 03:28:39
mood
Publicité
Posté le 23-10-2010 à 19:57:23  profilanswer
 

n°2031773
philippe06
Posté le 24-10-2010 à 00:16:15  profilanswer
 

Il s'agit d'un mécanisme de "reverse proxy", c'est à dire qu'Apache n'est qu'un proxy et qu'il va déléguer le travail à un autre serveur (par exemple: Zope). Un lien expliquant la syntaxe: http://wiki.zope.org/zope2/ZopeAnd [...] ostmonster
 
Je serais tenté d'essayer de cumuler les 2 RewriteRule.


---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
n°2031781
mikeleetor​is
Posté le 24-10-2010 à 03:09:35  profilanswer
 

philippe06 a écrit :

Il s'agit d'un mécanisme de "reverse proxy", c'est à dire qu'Apache n'est qu'un proxy et qu'il va déléguer le travail à un autre serveur (par exemple: Zope).

Ah ben c'est exactement ça! J'aurais dû le préciser dans le contexte technique. Le serveur tout pré-paramétré est en fait un serveur Zope + Python avec Apache en frontal. Merci pour le lien.

Citation :

Je serais tenté d'essayer de cumuler les 2 RewriteRule.


C'est ce que j'ai tenté, mais ça ne fonctionne pas... Lorsque je mets ces directives, j'atterris sur la page bidon d'Apache "It works!", mais jamais dans la partie gérée par Zope.

RewriteCond %{HTTP_HOST} ^my.dyndns.org$
RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/https/my.dyndns.org\:9999/$1 [L,P]
RewriteCond %{HTTP_HOST} ^srv.dom.int$
RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/https/srv.dom.int:443/$1 [L,P]

En fait, CA MARCHE!!!!
merci encore pour ton lien, car ils précisaient que l'on peut activer un logging pour les règles de Rewrite. Grâce à cela, j'ai compris que l'URL c'est le nom + le port, ma règle pour l'accès externe doit s'écrire:

RewriteCond %{HTTP_HOST} ^my.dyndns.org\:9999$

pour être bien vérifiée et validée.
Merci encore!


Message édité par mikeleetoris le 24-10-2010 à 03:31:20

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] VirtualHost et RewriteRule

 

Sujets relatifs
Virtualhost sous domaine dynamiqueRewriteRule et caractères spéciaux
[Résolu] Symfony - Premier projet et configuration d'un virtualhostRewriteRule http://monsite.fr -> http://www.monsite.fr
Probleme ecriture RewriteRuleErreur htaccess quand ErrorDocument + RewriteRule
apache 2 - tomcat 4 - virtualhost - jk2 connectorApache VirtualHost
[Apache] VirtualHost : besoin d'aide pliz !!! 
Plus de sujets relatifs à : [Résolu] VirtualHost et RewriteRule


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)