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