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 :

[Linux] Url rewriting ne fonctionne pas [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre actif
    Homme Profil pro
    Freelance
    Inscrit en
    Décembre 2003
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Décembre 2003
    Messages : 423
    Points : 259
    Points
    259
    Par défaut [Linux] Url rewriting ne fonctionne pas
    Bonjour à tous,

    J'ai installé PHP5 + APACHE2 + MySQL 5.
    j'ai fait a2enmod rewriting
    J'ai installé Symfony.
    J'ai créé un projet symfony dans le répertoire /home/mon_prenom/Documents/sites/monsite/
    J'ai créé un lien symbolique avec le dossier /var/www/monsite

    Sur internet, je tapes comme adresse localhost
    je sélectionne le répertoire monsite/web et là mon site s'affiche (ouf !)

    Sauf que si je clique sur un lien, à cause de l'URL rewriting j'ai des messages du style :
    The requested URL /monsite/web/voir-station/hahahaha was not found on this server.

    Je tiens à noter que si je passe par l'adresse /monsite/web/frontend_dev.php/voir-station/hahahaha .... et bien là ça fonctionne .... Donc c'est vraiment un soucis d'URL rewriting sous linux (sous windows ça fonctionne parfaitement).


    Est-ce que quelqu'un pourrait me dire comment résoudre mon problème ?



    Par avance merci
    "La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement...

  2. #2
    Membre confirmé Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Points : 532
    Points
    532
    Par défaut
    tes regles de reecriture se trouvent dans un htaccess ? si oui, as tu activé leur prise en charge par apache, en mettant à all les 2 premiers AllowOverride none du fichier de conf de ton serveur web
    Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org
    Tout est possible, tout est réalisable, le tout étant de savoir comment faire
    astuces pc
    gull villefranche

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    Salut,

    En fait je pense que tu as problème sur le front controler de l'environnement de production de ton projet,

    Je m'explique tu n'as normalement pas besoin de faire /web et cela ne devrais pas fonctionner. si cela fonctionne avec frontend_dev.php alors il y a un souci avec le fichier index.php (à la racine de web) ou avec la configuration de l'environnement production.

    Peux tu nous mettre une copie de /web/index.php ?

  4. #4
    Membre actif
    Homme Profil pro
    Freelance
    Inscrit en
    Décembre 2003
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Décembre 2003
    Messages : 423
    Points : 259
    Points
    259
    Par défaut
    Bonjour,

    Tout d'abord merci de vos réponses,

    Je rappelle que j'utilise le Framework symfony, donc c'est plus ou moins lui qui gère tout seul les règles de réécriture (cela dit oui j'ai dans un fichier .htaccess un ensemble de règles de bases).

    tes regles de reecriture se trouvent dans un htaccess ? si oui, as tu activé leur prise en charge par apache, en mettant à all les 2 premiers AllowOverride none du fichier de conf de ton serveur web
    Par contre pour l'édition du fichier conf ... quelque peu nouvel arrivant dans le monde web sous linux, j'ai édité le fichier /etc/apache2/sites-avaible/default et j'ai passé les deux premiers AllowOverride à All => mais sans succès ... Donc était-ce bien ce fichier qu'il fallait modifier ?

    Je m'explique tu n'as normalement pas besoin de faire /web
    Oui ... c'était une simple erreur de ma part, j'ai modifié le lien symbolique et je l'ai fait pointé directement sur le répertoire web => j'ai plus à l'ajouter à mon adresse

    Si vous avez besoin du contenu de fichiers spécifiques, faites moi signe je vous les transmet ...

    Merci de votre aide

    Annexe : code de index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
     
    require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
     
    $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
    sfContext::createInstance($configuration)->dispatch();
    au passage celui de config/ProjectConfiguration.class.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
    require_once '/usr/share/php/symfony/autoload/sfCoreAutoload.class.php';
    sfCoreAutoload::register();
     
    class ProjectConfiguration extends sfProjectConfiguration
    {
      public function setup()
      {
      }
    }
    "La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement...

  5. #5
    Membre actif
    Homme Profil pro
    Freelance
    Inscrit en
    Décembre 2003
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Décembre 2003
    Messages : 423
    Points : 259
    Points
    259
    Par défaut
    Re,

    Euh ... bha en fait c'est bon


    Je pense que c'était bien le coup du AllowOverride qu'il fallait passer à All


    Merci encore pour votre aide
    "La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne ... et personne ne sait pourquoi !" et malheureusement c'est souvent le cas en Développement...

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut fichiers de config url rewriting
    tres bon tuto
    Mais je voudrais bien voir les fichiers apache2.conf , les fichiers .htaccess ,
    cela m'aidera beaucoup à voir pkoi l'url rewriting ne marche pas sur mon apache2.9a me donnera un bel exemple de fichiers de configuration.
    Merci d'avance

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 117
    Points : 123
    Points
    123
    Par défaut
    Euh a toi de nous faire voir tes fichiers nécessaire pour voir ta configuration d'apache du virtualhost, et tout ce qui va avec.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut url rewriting ça marche
    voilà j'ai configuré mon url rewriting avec apache 2 sous ubuntu 6.10 et ça marche avec et sans htaccess
    Comme je suis un gars sympa,je voudrais rendre hommage à ce forum et en faire profiter tout le monde
    Voici mon tuto qui marche en rezo local
    1 Url rewriting avec les fichiers de directive .htaccess

    A) On autorise les fichiers .htaccess dans le fichier de configuration d’Apache2, on ajoute donc dans le fichier apache2.confi les directives suivantes:

    Concernant l’hôte virtuel ou site web bureau.lan

    <Directory /var/www/bureau.lan>
    AllowOverride All
    </Directory>

    Concernant l’hôte virtuel ou site web public.lan :

    <Directory /var/www/bureau.lan>
    AllowOverride All
    </Directory>

    On vient donc d’autoriser les fichiers .htaccess se trouvant dans les répertoires d’hôte virtuel bureau.lan et public.lan

    Les fichiers de configurations des hôtes virtuels sont:
    /etc/apache2/sites-available/bureau.lan et
    /etc/apache2/sites-available/public.lan

    On édite le fchier de bureau.lan en faisant nano bureau.lan:

    On saisit dans le fichier bureau.lan:

    <VirtualHost 192.168.1.1:80>
    ServerName bureau.lan
    ServerAlias bureau.lan *.bureau.lan
    DocumentRoot /var/www/bureau.lan
    </VirtualHost>


    Les pages du sites web bureau.lan sont stockés dans le répertoire
    /var/www/bureau.lan:

    Nous avons donc les pages index.html , existepas.html, trouve.html

    Maintenant on crée un fichier .htaccess dans ce même répertoire
    /var/www/bureau.lan:
    On fait nano .htaccess:
    On saisit dans ce fichier .htaccess les directives qui vont rediriger la page existepas.html vers trouve.html:

    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^existepas.html$ trouve.html [L]


    On fait la même chose pour public.lan

    Si on ne veut pas utiliser les fichiers .htaccess on saisit les directives de récritures d’url
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^existepas.html$ trouve.html [L]

    directement dans les fichiers etc/apache2/sites-available/bureau.lan et
    /etc/apache2/sites-available/public.lan ,
    Ce qui donne pour l’hôte virtuel bureau.lan:

    <VirtualHost 192.168.1.1:80>
    ServerName bureau.lan
    ServerAlias bureau.lan *.bureau.lan
    DocumentRoot /var/www/bureau.lan
    <Directory /var/www/bureau.lan>
    AllowOverride All
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^existepas.html$ trouve.html [L]
    </Directory>

    </VirtualHost>

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/02/2010, 09h33
  2. L'URL rewriting ne fonctionne pas avec EasyPHP 5.3
    Par valfritsch dans le forum Apache
    Réponses: 6
    Dernier message: 05/12/2009, 13h18
  3. URL Rewriting : ne fonctionne pas
    Par Guigui13 dans le forum Apache
    Réponses: 2
    Dernier message: 28/11/2008, 21h57
  4. [URL Rewriting] ne fonctionne pas avec [a-z]+
    Par krfa1 dans le forum Apache
    Réponses: 1
    Dernier message: 14/05/2008, 12h41
  5. Règle URL rewriting ne fonctionnant pas.
    Par Romalafrite dans le forum Apache
    Réponses: 2
    Dernier message: 01/10/2006, 09h10

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