2 votes

Le reverse proxy d'Apache ne conserve pas le nom de domaine

J'ai un site, par exemple example.wordpress.com (un sous-site wordpress multisite) mais je veux que les utilisateurs puissent voir le contenu de ce site sous un domaine différent, par ex. cooking.com . J'ai configuré un enregistrement A pour les deux domaines afin qu'ils soient redirigés vers la même adresse IP, et j'ai lu que si je veux conserver le nom de domaine dans l'URL, je dois utiliser la méthode suivante mod_proxy . Voici ma configuration :

<VirtualHost *:80>
    ServerName cooking.com

    ProxyRequests Off
    <Proxy *>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Proxy>
    ProxyPass / http://example.wordpress.com/
    ProxyPassReverse / http://example.wordpress.com/
</VirtualHost>

Cependant, lorsque je tape cooking.com dans mon navigateur, il me redirige vers example.wordpress.com et affiche son au lieu de cooking.com . Quel est le problème avec mon fichier apache ?

J'ai également essayé d'utiliser mod_rewrite à la place, mais j'obtiens toujours le même résultat :

RewriteEngine On
RewriteCond %{HTTP_HOST} ^cooking.com$ [NC]
RewriteRule ^(.*)$ http://example.wordpress.com/$1 [L,P,NC]

J'ai activé mod_proxy y mod_proxy_http et j'utilise Apache 2.4 sur Ubuntu 16.04.

0 votes

Il n'y a rien d'anormal dans ce que vous montrez, le problème est ailleurs. Examinez les en-têtes Location envoyés dans les réponses de redirection, y compris le schéma. Note "<Proxy *> n'est pas nécessaire pour les reverse proxies, vous pouvez vous en débarrasser.

0 votes

@ezra-s Emplacement dans les en-têtes de réponse pour 301 redirige vers la lecture : https://example.wordpress.com Est-ce possible que .htaccess et le virtualhost de example.wordpress.com (redirection https - bien que je ne force pas le HTTPS dans un fichier de conf) perturbent le processus ?

0 votes

Parfait, alors il vous manque un autre proxypassreverse qui comprend la même chose que vous, mais avec https (vous pouvez ajouter autant de proxypassreverse que nécessaire pour couvrir tous les cas).

1voto

Gitnik Points 147

J'ai résolu le problème. Pour des raisons inconnues de moi, le site d'origine forçait HTTPS (bien que je ne l'aie pas configuré). En tant qu'utilisateur ezra-s a suggéré (en examinant l'emplacement dans les en-têtes de réponse) que j'ai modifié ProxyPassReverse pour rediriger vers le domaine HTTPS (ce qui conduit à une boucle infinie). Cependant, en examinant les journaux d'apache et en cherchant sur Google, la solution était d'ajouter SSLProxyEngine on . Cela fonctionne maintenant, et il redirige vers le site mais sans changer d'URL dans le navigateur.

Note pour les débutants comme moi

Vous pouvez regarder les en-têtes de réponse dans la console des développeurs de votre navigateur, il suffit d'aller dans l'onglet réseau, et de (re)charger la page.

Note pour les utilisateurs de wordpress multisite

Bien que le domaine du sous-site ait changé, le site contient toujours des liens vers ses pages adressées à l'ancien domaine.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X