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

Symfony PHP Discussion :

probleme avec url forward [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut probleme avec url forward
    Bonjour à tous,
    je me lance avec symfony et deja j'ai des petits problèmes de compréhension au sujet des url forwarding.
    j'ai mes 2 environnement test accessible via frontend_dev.php et prod via index.php .
    Je développe sur mon serveur local que j'accède via l'adresse http://localhost/MONPROJET/index.php/main
    j'aimerai maintenant acceder a mon site sans avoir a taper le main donc je me rend dans routing.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    homepage:
      url:   /
      param: { module: main, action: index }
    jusque la pas de problème maintenant j'ai déjà quelque action dans mon module main que jaccede via un lien basique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url_for('main/show?id='.$main->getId())
    le probleme est que avant de touché a routing.yml tout allait bien j'accédais a ce que je voulais. mais depuis que j'ai mis par default l'index du module main et que j'accede a mon module via http://localhost/MONPROJET/index.php/, la page d'acceuil marche très bien le forward ce fait, cependant lorsque je clique sur mon lien j'ai un 404 et je suis dirigé sur http://localhost/MONPROJET/main/show/id/1 qui n'existe pas ...

    ps : lorsque j'utilise l'environement de dev frontend_dev.php tout marche correctement ....

    si quelqu'un a de l'info sur ce problème je suis preneur
    merci d'avance

  2. #2
    Membre actif

    Homme Profil pro
    Software Engineer
    Inscrit en
    Août 2004
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 173
    Points : 220
    Points
    220
    Par défaut
    Je suis pas sûr d'avoir tout compris.
    Néanmoins d'après les infos que tu donnes, si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    url_for('main/show?id='.$main->getId())
    L'URL générée est la bonne (http://localhost/MONPROJET/main/show/id/1)

    Donc en fait je vois pas vraiment le soucis.
    - As-tu une action show dans ton module main ?
    - Si oui peux-tu poster le code de l'action show ?
    - Peux-tu aussi poster le code du template (ou la partie) contenant l'appel à url_for ?
    - Enfin peux-tu poster les parties concernées du routing.yml

  3. #3
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    hello,
    bon j'ai repris le tuto jobeet du site de symfony et j'en viens au même souci, je m'explique:
    environnement de développement j'utilise frontend_dev.php/job/
    environnement de prod j'utilise index.php/job/
    ca marche tres bien comme ca.

    je veux acceder a mon site en tapant :
    en test: localhost/frontend_dev.php/
    en prod: localhost/

    pour ce j'ai editer routing.yml et modifié la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    homepage:
      url:   /
      param: { module: job, action: index }
    De cette façon losque je suis en test, je navigue sur localhost/frontend_dev.php/ et j'arrive sur ma page d'acceuil, je clique sur mon action show et la j'arrive bien à ce que je veux en ayant dans l'url http://localhost/rontend_dev.php/job/show/id/1 donc le forward marche bien dans mon environnemet de test.
    Pour l'environement de prod, c'est un peu différent. J'accede a ma page d'acceuil par localhost ou encore localhost/index.php/ mais lorsque je clique sur mon lien je suis redirigé sur http://localhost/job/show/id/1 qui n'existe pas donc 404 ce qui est normal. ma question est donc de savoir comment je peux ecrire une regle de forward afin d'obtenir l'url http://localhost/index.php/job/show/id/1 sans avoir a hardcodé ca dans mon action, et ainsi avoir le même comportement que mon environnement de test ...

  4. #4
    Membre actif

    Homme Profil pro
    Software Engineer
    Inscrit en
    Août 2004
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 173
    Points : 220
    Points
    220
    Par défaut
    Va dans ton projet config/settings.yml de ton application.
    Dans l'environnement prod met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    prod:
      .settings:
        no_script_name: false
    Re-essai. Si cela fonctionne c'est que le module de rewriting n'est pas activé sur ton serveur apache.
    Pour l'activer, vérifie que cette ligne existe dans ton httpd.conf d'apache.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LoadModule rewrite_module modules/mod_rewrite.so
    Tu peux maintenant remettre le no_script_name à true.

    En fait, en production Symfony, par défaut, masque le fichier de script appelé dans l'URL (ici index.php) mais pour ça il a besoin du module de rewriting d'apache.

  5. #5
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    Salut Vivian,
    merci pr ta réponse j'ai mis no_script_name à off comme l'environnement de dev et de test et j'obtiens bien ce que je veux!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SPAGOBIQBEENGINE 2.5 probleme avec URL
    Par Idsaw dans le forum SpagoBI
    Réponses: 1
    Dernier message: 18/06/2010, 14h40
  2. [AJAX] History.forward
    Par claire13 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/11/2007, 22h34
  3. [inno setup] Probleme avec des fichiers.url et autres
    Par Razorbak dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 13/11/2007, 19h57
  4. Probleme avec url aléatoire
    Par fofan dans le forum Struts 1
    Réponses: 1
    Dernier message: 23/01/2007, 17h19
  5. [tomcat]j'ai un probleme avec mes URLs
    Par nouaman dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 27/05/2004, 00h10

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