Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/02/2011, 14h28   #1
Invité de passage
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 3
Points : 3
Par défaut Ulr rewriting symfony avec Nginx

Bonjour,

J'ai un problème avec mes url, tous fonctionne bien quand je suis sur l'index.php mais dès que je passe sur le frontend_dev.php mes url sont générés comme ceci:

mon-site.com/frontend_dev.php/inscription.html/aide.html

à la place de :

mon-site.com/frontend_dev.php/aide.html

Et ce problème se répercute sur toute les pages qui ont un .php dans l'url.

Je me demande si cela vient de symfony ou de mon serveur web.

Mon serveur web est sur nginx, voici ma conf:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
server {
   # en prime, redirection vers le www
   server_name mon-site;
   rewrite ^(.*) http://mon-site.com$1 permanent;
}
 
server {
   listen 80;
   server_name  mon-site.com;
 
   access_log  /var/log/mon-site/access.log;
   error_log  /var/log/mon-site/error.log;
 
   location / {
       root   /home/www/web;
       index  index.html index.php;
 
     #bloquer l’accès sans mot de passe
       auth_basic "Toute personne entrant sans autorisation s'expose a des poursuites judiciaires";
       auth_basic_user_file /etc/nginx/htpasswd;
 
 
       if (-f $request_filename) {
           expires max;
           break;
       }
 
 
       if ($request_filename !~ "\.(js|htc|ico|gif|jpg|png|css)$") {
           rewrite ^(.*) /index.php last;
       }
   }
 
   location /sf/ {
       root /var/symfony/data/web/;
       expires max;
   }
 
   location ~ \.php($|/) {
       set  $script     $uri;
       set  $path_info  "";
 
       if ($uri ~ "^(.+\.php)(/.+)") {
           set  $script     $1;
           set  $path_info  $2;
       }
 
       fastcgi_pass   127.0.0.1:9000;
 
       include /etc/nginx/fastcgi_params;
 
       fastcgi_param  SCRIPT_FILENAME  /home/www/web$script;
       fastcgi_param  PATH_INFO        $path_info;
   }
}
Merci d'avance
djfou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 14h44   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Je ne connais pas ngnix et il m'étonnerait que tu trouves ici quelqu'un qui connaisse simultanément symfony et ngnix.

Tu vas donc devoir fournir l'expertise ngnix toi même.

Je n'ai jamais vu, ni entendu parler d'un comportement pareille dans symfony, ce qui ne veut pas dire qu'il ne puisse y arriver, même si, a priori, je ne vois pas comment le provoquer facilement (genre par une erreur de paramétrage dans un fichier de configuration.

Par acquis de conscience fait une recherche pour voir si tu trouves un fichier dans ton application avec inscription.php qui s'y trouverais.

As-tu un fichier inscription.php dans ton arborescence ? Où ?

As-tu la possibilité d'essayer avec un bon vieux xamp ? Sur une machine virtuel ?

Autant je ne pense pas que symfony puisse réécrire l'url de cette manière (mais n'en suis pas sur), autant je ne vois pas un moteur de page réécrire l'url à la volée, mais peut-être est-ce possible sur ngnix ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 15h33   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
ah mon avis c'est ici que ca va pas :

Code :
1
2
3
4
 if ($uri ~ "^(.+\.php)(/.+)") {
           set  $script     $1;
           set  $path_info  $2;
       }
il va faire
$script $uri $1
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 15h44   #4
Invité de passage
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 3
Points : 3
Donc si j'ai bien compris :
$script => mon-site.com/frontend_dev.php
$uri => /inscription.html
$1 => /aide.html

Merci d'avance pour vos réponse car je bloque totalement mais ce que je pense c'est que le problème vient de nginx.
djfou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 15h50   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
enlève la condition ou les premiers set ou essaye d'autre paramètre

EDIT : t'as pas de fastcgi_param SCRIPT_FILENAME ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 16h10   #6
Invité de passage
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 3
Points : 3
Si j'ai cette ligne :

Code :
fastcgi_param  SCRIPT_FILENAME  /home/www/web$script;
djfou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 16h16   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
Citation:
Envoyé par djfou Voir le message
Si j'ai cette ligne :

Code :
fastcgi_param  SCRIPT_FILENAME  /home/www/web$script;
SCRIPT_NAME pardon
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 16h26   #8
Invité de passage
 
Inscription : août 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 26
Points : 3
Points : 3
Merci beaucoup effectivement c'est bien ça ^^
djfou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h12.


 
 
 
 
Partenaires

Hébergement Web