web-dev-qa-db-fra.com

Afficher le contenu d'un hôte gratuit à l'URL d'un autre hôte gratuit

J'ai deux domaines gratuits hébergés par différents services

par exemple. GoodURL.BadFeatures.com et BadURL.GoodFeatures.com

Quel est le moyen d’afficher la bonne URL dans le navigateur mais à partir du mauvais site d’URL?

Au début, je pensais utiliser une page complète iframe, mais cela empêcherait les utilisateurs normaux de partager la page qu'ils visionnent (et ne pouvons pas mettre en signet les pages qu'ils visualisent).

Ensuite, j'ai pensé que je pourrais peut-être demander à GoodURL.BadFeatures.com de demander le contenu à BadURL.GoodFeatures.com et de ne donner que son résultat.
(mais étant donné que certains utilisateurs peuvent vouloir se connecter, je dois transférer tous les cookies - je ne sais pas comment, utilisateur par utilisateur)

J'ai essayé de placer le texte suivant dans un .htaccess sur le site Good URL:

RewriteEngine On
RewriteRule ^(.*) BadURL.GoodFeatures.com/$1 [P,L]

mais continue à avoir une erreur interne (500)

1
K5zDvXGcvmX7vNT

La solution que vous envisagez est un laissez-passer par procuration.

Votre méthode actuelle devrait être:

RewriteEngine On
RewriteRule ^(.*)$ BadURL.GoodFeatures.com/$1 [P]

Remarquez le signe '$' qui indique le chemin pour le réécrire. L'indicateur de proxy sur mod_rewrite ignore également l'indicateur 'L', car il a déjà transmis la demande à mod_proxy et ignore toutes les règles après le traitement de cette demande.

Une meilleure méthode serait:

<VirtualHost *:80>
    DocumentRoot "/www/whatever"
    ServerName GoodURL.BadFeatures.com
    ProxyPass  http://BadURL.GoodFeatures.com/
    ProxyPassReverse / http://BadURL.GoodFeatures.com/
    ProxyPassReverseCookieDomain BadURL.GoodFeatures.com GoodURL.BadFeatures.com
</VirtualHost>

L'utilisation de ProxyPass est préférable à la réécriture en raison du nombre élevé de traitements requis avec votre méthode de réécriture actuelle. Cela fait la même chose mais ignore certaines étapes et permet une meilleure manipulation. Il résout également votre problème avec les cookies.

J'imagine que vous essayez de combiner un bon service d'hébergement avec un bon gestionnaire de contenu. S'il était possible de les combiner sur un seul serveur, cela améliorerait considérablement les performances globales. Ce que vous avez configuré ici s'appelle une passerelle: un serveur gère toutes les demandes, tandis qu'un autre se concentre sur le contenu. Normalement, cette configuration a des fonctionnalités de sécurité implémentées pour empêcher toute altération. Envisagez de rechercher des options pour mettre cela en œuvre.

1
L Martin