3 votes

redirection du domaine privé vers le domaine public dans apache

J'ai deux serveurs web apache, un public et un privé. L'exigence est que les utilisateurs accèdent au PUBLIC et obtenir le contenu du domaine PRIVEE domaine. Le site PUBLIC doit être vide et contenir uniquement le fichier .htaccess utilisé pour l'authentification des utilisateurs. Toutes les requêtes arriveront à http://public.com:60001/ et sont réécrits par apache en http://private:60001/ . Les utilisateurs ne peuvent pas accéder PRIVEE directement, mais le serveur où PUBLIC Le domaine est hébergé a une connexion avec lui.

Pour y parvenir, j'ai mis à jour l'hôte virtuel de l'application PUBLIC pour l'inclure :

<Directory "/wwwroot/public.com">
    RewriteEngine on
    RewriteBase /
    RewriteRule ^(.*)$ http://private:60001/$1 [P]
    ProxyPassReverse http://private:60001/
</Directory>

Après avoir fait cela, les pages se chargent mais avec deux problèmes :

  1. Tous les liens dans le code html des pages du site web seront sous la forme de http://private:60001/ Ainsi, lorsque l'utilisateur clique sur les liens, il obtient une erreur 404 (puisqu'il n'a pas de connexion à ce site). Existe-t-il un moyen pour apache de réécrire ces liens en http://public.com:60001/ ?
  2. Les appels Ajax ne fonctionnent pas - une erreur 404 est générée. Je pense que c'est peut-être à cause du même problème qu'au point 1.

Merci pour votre aide

1voto

Jon Lin Points 88615

Mod_proxy ne va pas résoudre votre problème. Vous allez devoir supprimer tous les noms d'hôtes de votre contenu à partir de privé . Ainsi, au lieu d'avoir des liens comme :

<a href="http://private:60001/something/">

Ils doivent ressembler :

<a href="http://stackoverflow.com/something/">

Sinon, vous pouvez vous pencher sur mod_proxy_html qui va en fait manipuler le contenu de la page (par opposition à la seule requête) et mettre en correspondance les liens du contenu sur le privé afin qu'ils soient liés au public. Voir ce lien pour quelques exemples.

Essentiellement, quelque chose du genre :

ProxyHTMLLogVerbose On
ProxyHTMLLinks  a               href
ProxyHTMLLinks  link            href
ProxyHTMLLinks  form            action
ProxyHTMLLinks  script          src for
ProxyHTMLLinks  img             src longdesc usemap
ProxyHTMLLinks  iframe          src

ProxyHTMLEvents onclick ondblclick onmousedown onmouseup \
            onmouseover onmousemove onmouseout onkeypress \
            onkeydown onkeyup onfocus onblur onload \
            onunload onsubmit onreset onselect onchange

ProxyHTMLURLMap url\(http://private:60001([^\)]*)\) url(http://public:60001$1) Rihe

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X