21
2019
Réécrire à la volé le code source d’une page avec apache
En voulant rendre accessible une application Web de l’extérieur en passant par un reverse proxy apache, je me suis aperçu que les liens vers les fichiers CSS et autres étaient en dure : appli.domaine-interne.local/css/fichier.css (par exemple). Or je voulais changer d’FQDN.
Après pas mal de recherche, j’ai trouvé un mod d’apache permettant de réécrire à la volée le contenu HTML. Ce mod se nomme mod_substitute.
https://httpd.apache.org/docs/2.4/fr/mod/mod_substitute.html
Après quelques tests, je n’ai pas réussi à l’utiliser. J’ai continué de chercher et je suis tombé sur une autre méthode permettant d’exécuter un script php pendant le traitement du mod_proxy.
Voici ce qu’il faut ajouter dans le virtualhost :
ExtFilterDefine proxiedcontentfilter mode=output cmd=”/usr/bin/php /var/www/html/sub.php”
RequestHeader unset Accept-Encoding
RequestHeader set Accept-Encoding identity
SetOutputFilter proxiedcontentfilter
Il faut ensuite créer le fichier php correspondant /var/www/html/sub.php
#!/usr/bin/php
<?php
$html = file_get_contents(‘php://stdin’);
$html = str_ireplace(‘http://appli.domaine-interne.local’, ‘https://appli.nouveaudomaine.fr’, $html);
file_put_contents(‘php://stdout’, $html);
Ici, le fichier php appelé par apache lors du traitement mod_proxy permettra de remplacer appli.domaine-interne.local par https://appli.nouveaudomaine.fr’.
Cette méthode est magique. À voir au niveau des performances, mais pour mon cas d’usage, il semblerait que ça tienne la route.
Assurez-vous d’avoir installé php au préalable et mod_proxy puis redémarrez votre serveur apache.
Articles similaires
Laissez un commentaire
Publicité :)
Articles récents
- Memento VI – Boostez Votre Productivité avec Vi : Trucs et Astuces à Connaître
- Configuration de Nginx pour Obtenir l’IP Réelle des Visiteurs avec CloudFlare
- Récupérer les informations d’un Ordinateur Terra à partir du numéros de série avec Python
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc…
- Failed to Start File System Check – Vcenter 7
Mot-clefs
Commentaires récents
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc… dans
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc… dans
- Rotation des logs avec logrotate dans
- Hôte déconnecté sur le Vcenter. Impossible de se connecter à l’ESX. dans
- Pourquoi mon interface vlan ne veut pas devenir up ? dans