Boris Posté(e) le 2 mars 2019 Posté(e) le 2 mars 2019 Bonjour à toutes et à tous, Je rencontre une difficulté dans l'écriture d'un script php (qui se trouve dans /WEB) Voici ce que je cherche à faire (3 tâches): 1 - redirection http=>https 2 - si la page demandée est "photo.mondomaine.fr" => réécris l'url en "photo.mondomaine.fr/photo" (c'est pour arriver à photostation, pour avoir des adresses cohérentes avec les autres du reverse-proxi et pour que le certificat aille bien...) 3 - pour les adresses monsite.fr ou www.monsite.fr => afficher un court texte (3 lignes) Je suis totalement incompétent en php et c'est pas mieux en html. J'ai vaguement eu une introduction à l'algorithmique et aux bases de la programmation... mais c'était il y a 20 ans (au moins 😓)... En parcourant le forum (et merci google), j'arrive à afficher le texte correctement avec : <?php echo ' <font face="arial" size="2" color="red">Bonjour le monde !</font> <br />'; echo ' <font face="arial" size="2" color="red">Bienvenue sur mon site</font> '; ?> En "parasitant" des bouts de codes, j'ai aussi la réécriture conditionnelle qui fonctionne (à peu près): <?php $http_host=$_SERVER['HTTP_HOST']; switch ($http_host) { // si URL spécifique alors on réécrit l'URL case "photo.monsite.fr": header("Location: https://$http_host/photo",TRUE,307); break; default: // cas général : redirection http=>https header("Location: https://$http_host",TRUE,307); } exit; ?> (Ce code n'est pas de moi... je fais le "singe savant" en bricolant sur des trucs que j'ai trouvé, et en en ayant une compréhension plus qu'approximative.) Mais je n'arrive pas à faire les fonctionner "même temps" ... et les trois "contraintes" en même temps encore moins. J'arrive au bout du bout de ce que je sais faire; et je suis preneur de toute l'aide que vous pourrez... Merci
lose Posté(e) le 3 mars 2019 Posté(e) le 3 mars 2019 essaye comme ceci : <?php $http_host=$_SERVER['HTTP_HOST']; switch ($http_host) { // si URL spécifique alors on réécrit l'URL case "photo.monsite.fr": header("Location: https://$http_host/photo",TRUE,307); default: // cas général : redirection http=>https header("Location: https://$http_host",TRUE,307); } exit; ?> oiu bien comme ça : <?php $http_host=$_SERVER['HTTP_HOST']; switch ($http_host) { default: // cas général : redirection http=>https header("Location: https://$http_host",TRUE,307); } switch ($http_host) { // si URL spécifique alors on réécrit l'URL case "photo.monsite.fr": header("Location: https://$http_host/photo",TRUE,307); } exit; ?> Cela fait très longtemps (~20 ans) que je n'ai pas touché à la programmation, alors je n'en suis pas si sûr.
Boris Posté(e) le 3 mars 2019 Auteur Posté(e) le 3 mars 2019 Bonjour, et merci de t’intéresser à mon problème. Tes scripts redirigent bien http => https, mais ne réécrivent pas l'URL correctement (désolé). Mais grâce à ton aide et à Fenrir ; dans ce fil : https://www.nas-forum.com/forum/topic/57121-aide-à-la-configuration-du-proxy-inversé-pour-photostation/ (à la page 2) j'ai pu faire ça : <?php // redirections $http_host=$_SERVER['HTTP_HOST']; switch ($http_host) { case "photo.monsite.fr": header("Location: https://$http_host/photo",TRUE,307); break; default: header("Location: https://$http_host",TRUE,307); } exit; ?> La redirection http => https fonctionne; ainsi que la réécriture d'URL. Maintenant, dernière partie du problème pour que les gens qui tapent : monsite.fr ou bien www.monsite.fr (et qui donc se retrouvent en https) aient un message qui s'affiche. Si je le place comme ça : <?php // redirections $http_host=$_SERVER['HTTP_HOST']; switch ($http_host) { //pour accéder à PhotoStation case "photo.bogisa.fr": header("Location: https://$http_host/photo",TRUE,307); break; // pour les autres connexions default: // redirection http => https header("Location: https://$http_host",TRUE,307); //affichage du message echo ' <font face="arial" size="2" color="red">Bonjour le monde !</font> <br />'; echo ' <font face="arial" size="2" color="red">Bienvenue sur mon site</font> '; } exit; ?> la redirection http => https se fait bien mais le texte ne s'affiche pas. J'ai un message : la page n'est pas redirigée correctement.
lose Posté(e) le 3 mars 2019 Posté(e) le 3 mars 2019 echo ne s'affiche pas puisque il y a une redirection juste avant ton script ne fonctionne pas puisque trop de redirection dit le navigateur
lose Posté(e) le 3 mars 2019 Posté(e) le 3 mars 2019 <?php // redirections 308 donc permanent // récupétation variable liens $http_host=$_SERVER['HTTP_HOST']; // début boucle lien switch ($http_host) { //pour accéder à PhotoStation vérifie si contient photo.bogisa.fr et si oui fait redirection case "photo.bogisa.fr": header("Location: https://$http_host/photo",TRUE,308); break; default: // pour les autres connexions oui mais pour ne pas tourner en boucle, doit vérifier si pas déjà en https en on if(!isset($_SERVER["HTTPS"]) || != "on") { // redirection http => https header("Location: https://$http_host",TRUE,308); } break; } exit; ?>
lose Posté(e) le 8 mars 2019 Posté(e) le 8 mars 2019 Le 03/03/2019 à 16:11, Boris a dit : Bonjour, et merci de t’intéresser à mon problème. La modif ne convient pas ?
Boris Posté(e) le 10 mars 2019 Auteur Posté(e) le 10 mars 2019 Bonjour, désolé pour ma réponse tardive, j'ai été très occupé loin de mon ordi.... et aussi désolé, ton script ne fonctionne pas ... mais je ne saurais pas expliquer pourquoi. Par conte, j'ai résolu mon problème en écrivant explicitement les cas de redirection http => https avec le nom du service demandé, et en gardant l'affichage du message pour le cas par défaut. Ça donne: <?php $http_host=$_SERVER['HTTP_HOST']; switch ($http_host) { //---------------------------------------------------- //cas des applications case "photo.mondomaine.fr": header("Location: https://$http_host/photo",TRUE,307); break; case "audio.mondomaine.fr": header("Location: https://$http_host",TRUE,307); break; case "download.mondomaine.fr": header("Location: https://$http_host",TRUE,307); break; case "file.mondomaine.fr": header("Location: https://$http_host",TRUE,307); break; case "video.mondomaine.fr": header("Location: https://$http_host",TRUE,307); break; case "book.mondomaine.fr": header("Location: https://$http_host",TRUE,307); break; //---------------------------------------------------- //cas par defaut : affichage du message default: echo ' <font face="arial" size="4" color="black">Bonjour,</font> <br />'; echo ' <font face="arial" size="4" color="black">Votre demande ne vous permet pas d\'atteindre les contenus</font> <br />'; echo ' <font face="arial" size="4" color="black">Merci de la reformuler.</font> '; } exit; ?> Je me pencherai plus tard sur cette histoire de message que j'affiche avec echo , histoire de aire un truc propre avec une page html. Mais ce sera pour plus tard 😅 Je passe en RESOLU.
DaffY Posté(e) le 10 mars 2019 Posté(e) le 10 mars 2019 Le problème est maintenant résolu. N'hésitez pas à ouvrir un nouveau message en cas de problème. Ceci est une réponse automatique.
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.