IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Simple Redirection conditonnelle


Sujet :

Langage PHP

  1. #1
    Membre expérimenté

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Points : 1 738
    Points
    1 738
    Billets dans le blog
    1
    Par défaut Simple Redirection conditonnelle
    Bonjour,

    j'ai un ami qui fait un site avec joomla, je l'aide pour les configuratios etc, mais là n'est pas le problème.

    Mon problème est que je suis developpeur (amateur) en .net et pas du tout en php, j'essai quand même de l'aider en essayant de faire un p'tit script de redirection mais avec condition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    /* Redirection vers une page appartenant au même dossier que la page actuelle */
    function redirect() {
    $host = $_SERVER['HTTP_HOST']; /* On récupère le nom du site */
    if ($host == monsite.fr );
    header( "Status: 301 Moved Permanently", false, 301); /* le deuxième paramètre 301 est indispensable pour certains serveurs */
    header('Location: http://www.monsite.fr');
    echo '<a href="'.$host.'">Cliquez ici pour vous rediriger vers '.$host.'</a>';
    exit;
    }
    redirect();
    ?>
    J'ai repris le code que j'ai modifié pour y ajouter le "if". Pas compliqué, mais je ne pensais pas que ça tournerait en rond....(redirection sans arret).

    Comment puis-je faire pour que ça ne tourne pas en rond?

    Cordialement

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Tout d'abord, cette ligne ne fais rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($host == monsite.fr );
    Utilisé comme ça (sans être suivi d'accolades), if exécute l'instruction qui le suit. Et la condition du if ne doit pas être suivi par un point virgule. Donc en faisant ça, si la condition est vrai, l'instruction ";" est exécutée, c'est à dire rien

    D'autre part, je suppose que tu veux faire la redirection uniquement quand l'hôte n'est pas 'monsite.fr' ? Il faut donc faire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($host != 'monsite.fr')
    {
        header('Status: 301 Moved Permanently', false, 301); /* le deuxième paramètre 301 est indispensable pour certains serveurs */
        header('Location: http://www.monsite.fr');
        echo '<a href="'.$host.'">Cliquez ici pour vous rediriger vers '.$host.'</a>';
    }
    Enfin, le exit; à la fin de la procédure est inutile

  3. #3
    Membre expérimenté

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Points : 1 738
    Points
    1 738
    Billets dans le blog
    1
    Par défaut
    En fait,
    ce que je voudrais, c'est que si l'url est monsite.com, alors on la modifie pour qu'elle devienne www.monsite.com, car je veux pouvoir accéder au dite par localhost sans problème.

    donc ça donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    /* Redirection vers une page appartenant au même dossier que la page actuelle */
    function redirect() {
    $host = $_SERVER['HTTP_HOST']; /* On récupère le nom du site */
    if ($host == 'monsite.fr')
    {
        header('Status: 301 Moved Permanently', false, 301); /* le deuxième paramètre 301 est indispensable pour certains serveurs */
        header('Location: http://www.monsite.fr');
        echo '<a href="'.$host.'">Cliquez ici pour vous rediriger vers '.$host.'</a>';
        exit;
    }
    redirect();
    ?>
    Mais, au départ, il y avait une autre partie de code, que j'ai virée (), et que je voudrais refaire, car ça pourrait servir, si la personne accède au site par un lien. Il faudrait donc juste ajouter les "www", mais en ayant toujours le même url.
    Comment puis-je faire?

  4. #4
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    Fais plutôt ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($host == 'monsite.fr')
    parce que tu veux vérifier que $host est égal à ( == ) 'monsite.fr' et non qu'il vaut ( = ) 'monsite.fr'...

  5. #5
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par Poulain Voir le message
    En fait,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($host = 'monsite.fr')
    {
        header('Status: 301 Moved Permanently', false, 301); /* le deuxième paramètre 301 est indispensable pour certains serveurs */
        header('Location: http://www.monsite.fr');
        echo '<a href="'.$host.'">Cliquez ici pour vous rediriger vers '.$host.'</a>';
    }
    Attention entre les opérandes d'affectation = et de comparaison == ... donc :
    if ($host == 'monsite.fr')

Discussions similaires

  1. Heberger une simple redirection de nom de domaine
    Par Soap17 dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 08/09/2012, 01h14
  2. Simple redirection qui ne fonctionne pas
    Par Invité dans le forum Apache
    Réponses: 3
    Dernier message: 12/01/2012, 10h21
  3. Faire une simple redirection
    Par Reggio dans le forum Langage
    Réponses: 12
    Dernier message: 21/07/2009, 18h06
  4. simple redirection dans fonction
    Par camyo dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 30/04/2009, 18h58
  5. rewriting url ou simple redirection
    Par adm_windoz dans le forum Apache
    Réponses: 1
    Dernier message: 07/11/2008, 08h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo