[résolu] réécriture d'URL et générat° du .htaccess

Discussion dans 'URL Rewriting et .htaccess' créé par dody, 21 Août 2003.

  1. dody
    dody Nouveau WRInaute
    Inscrit:
    21 Août 2003
    Messages:
    17
    J'aime reçus:
    0
    Bonjour,
    J'était contente de moi car je pensais avoir tout bien compris à la réécriture des URL, mes test marchaient, puis il a fallu que je l'applique à l'ensemble de mon site, et là patatra ... :cry:
    En fait tant que j'écris le fichier .htaccess à la main tout fonctionne. Mais ce n'est pas applicable car j'ai trop de paramètres à écrire et je ne trouve pas ça très pratique.
    J'ai fais un script qui reprend exactement mon test (qui fonctionnait). La génération du .htaccess se fait sans problème, mais par la suite j'obtient une erreur 500 (plus aucune page n'est visible). J'ai remarqué que cette erreur disparaissait dès que je supprimais mon .htaccess.
    Avez-vous déjà tenté qq chose de la sorte ??
    Ai-je loupé qq chose ??

    Merci d'avance,
    Elodie
     
  2. berberber
    berberber WRInaute impliqué
    Inscrit:
    26 Mai 2003
    Messages:
    643
    J'aime reçus:
    0
    Je ne suis pas un grand specialiste en url-rewriting, mais pour appliquer une regle a l 'ensemble du site, mieux vaut editer le fichier de configuration apache (apache2.conf ou httpd.conf), si tu y as acces.
     
  3. dody
    dody Nouveau WRInaute
    Inscrit:
    21 Août 2003
    Messages:
    17
    J'aime reçus:
    0
    Bah elle m'arrange pas vraiment ta solution ... :(
    Parce que j'ai besoin que mes réécritures soient fonctions du contenu de ma base de données (articles, rubriques ...) donc je ne peux pas passer directement tous les paramètres dans le fichier de configuration apache.

    Elodie
     
  4. galle
    galle WRInaute discret
    Inscrit:
    18 Juillet 2003
    Messages:
    114
    J'aime reçus:
    0
    Imagines que tu demandes à voir une page sur un serveur. Le serveur regarde s'il y a un fichier htaccess. S'il n'y en a pas, il execute le php. Mais si le php créé le htaccess, il le fait trop tard. Ce fichier (htaccess) a déjà été demandé, et ne le sera plus.
    A mon avis, c'est comme ca que ca se passe. Le script peut créer un fichier htaccess (bien que je n'en sois meme pas sûr), mais une fois créé, le fichier htaccess n'est pas invoqué.

    Par contre, il est possible, dans un fichier htaccess, de définir des niveaux, dans les répertoires. Tel répertoire = telle action, tel autre = telle autre, etc..

    C'est peut etre plus comme ca que tu devrais faire (ca dépend du probleme, tu diras.)

    Voilà ,A+, Nico.
     
  5. dody
    dody Nouveau WRInaute
    Inscrit:
    21 Août 2003
    Messages:
    17
    J'aime reçus:
    0
    Ok, mais si le fichier .htaccess n'est plus invoqué comme tu le dis, mon serveur ne devrai pas planter (enfin c'est ce qu'il me semble)
    Et la, après la création du fichier j'ai un bo plantage dès que j'essaye d'acceder à une page et ça aussi bien avec les nouvelles adresses qu'avec les adresses réélles.

    Personne n'a déjà réalisé ce genre de chose avant moi ?? même si c'est pas du php je suis preneuse. Ce que je cherche c'est surtout une idée qui me permette de faire fonctionne les URL rewriting sans avoir à me taper toutes les adresses à la main

    Elodie
     
  6. Mirgolth
    Mirgolth WRInaute impliqué
    Inscrit:
    14 Octobre 2002
    Messages:
    616
    J'aime reçus:
    0
    Si, j'ai généré des regles de réécriture lorsque je suis passez d'index numérique ( /article-3.html ) à des index en toute lettre ( /articles/mots-clé.html ). Comme il n'y a aucun rapport entre les chiffre et les mots-clé, j'ai du faire autant de redirection qu'il y a de page à partir des infos de la BdD.

    Le script en lui même est simple et dépend des tables de ta BdD. Dejà essayes avec quelques règles de réécriture faitent à la main et vérifie que cela fonction pour ces cas particulier. Dès que c'est bon tu as des exemples pour faire ton script qui va te générer l'ensemble des réécritures.

    Après avoir fait ton script et générer ton .htaccess, edite le pour vérifier qu'il a "une bonne tête". on as vite oublier un retour chariot qui casse tout...Si lorsque tu le test tu as une erreur 500, prend une regle au hazard parmis celle générées et teste la seule.
    - Si c'est Ok, c'est certainement que tu as oublié un cas particulier. Par dichotomie tu devrais vite trouver la règle que pose problème et adapter le script.
    -Si c'est Nok, alors il est probable que ton script est faux... compare bien les règles générées avec ton exemple de départ.

    N'essaie pas de tous faire fonctionner d'un coup mais vas y petit à petit en validant chaque étape et tu y arriveras.

    Mirgolth
     
  7. dody
    dody Nouveau WRInaute
    Inscrit:
    21 Août 2003
    Messages:
    17
    J'aime reçus:
    0
    C'est exactement ce que je souhaite faire. Mais je ne voyait pas d'ou mon erreur pouvait provenir alors j'ai pensé que ce que je voulais n'etait pas réalisable.
    Maintenant que tu me dis que tu as déjà fait ça avec succès je vais m'acharner à comprendre mon erreur.
    Merci pour cet encouragement ! :)

    Elodie
     
  8. dody
    dody Nouveau WRInaute
    Inscrit:
    21 Août 2003
    Messages:
    17
    J'aime reçus:
    0
    Oh YES !!!!!!!!!!!!!!!!!!!!!!!! :D

    J'ai trouvé mon erreur !!!
    Très bête, comme la plupart des erreurs sur lesquelles on buttes pdt des heures ...
    En fait j'utilise "Options +FollowSymlinks" et quand je l'ecrivais dans le .htaccess j'oubliais systématiquement le s de "Options"
    Maintenant ça fonctionne avec mon exemple donc ça devrait aller pour la suite 8)

    Merci encore, mon w.e est sauvé
    Elodie
     
  9. galle
    galle WRInaute discret
    Inscrit:
    18 Juillet 2003
    Messages:
    114
    J'aime reçus:
    0
    Cherches bien, y'a surement quelque chose à faire ;)