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

EDI, CMS, Outils, Scripts et API PHP Discussion :

regexp url rewrite slash


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut regexp url rewrite slash
    Bonjour,

    je ne comprend pas ou est mon probleme...une regexp pourtant simple...

    dans mon .htaccess : RewriteRule ^photos$ index.php?view=gallerie [L]et l'url pour tester : localhost/photos
    => ca, ca fonctionne...

    ce que j'essaye de faire : c'est une url du type : localhost/photos/album1
    du coup, j'ai essaye ca : RewriteRule ^photos\/([a-Z0-9]+)$ index.php?view=gallerie&book=$1 [L]mais la, apache plante
    (Internal Server Error)
    j'ai essaye plein de syntaxes pour echapper le slash, mais rien a faire...

    need vos lumieres :/
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Il n'y a pas lieu d'échapper les slashs, il n'a jamais fait partie des métacaractères.

    La classe est invalide sur la partie a-Z (les majuscules étant avant les minuscules) donc plutôt a-zA-Z ou similaire.

    Quand on a une erreur 500, l'explication se trouve dans le journal d'erreur d'Apache :
    .htaccess: RewriteRule: cannot compile regular expression '^photos/([a-Z0-9]+)$'

  3. #3
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    heu, la j'ai un soucis je crois...
    j'ai essaye un truc bidon pour voire : RewriteRule ^photos/([a-z]+)$ index.php?view=gallerie&book=$1 [L]quand je vais sur localhost/photos/test, il me redirige bien, mais me perd mon style css...(je recupere bien l'argument 'test'

    par contre, si je vais juste sur localhost/photos, c'est niquel...
    car j'ai une autre redirection qui est : RewriteRule ^photos$ index.php?view=gallerie [L](la meme chose sans le nom de l'album)
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par Doksuri Voir le message
    j'ai essaye un truc bidon pour voire : RewriteRule ^photos/([a-z]+)$ index.php?view=gallerie&book=$1 [L]quand je vais sur localhost/photos/test, il me redirige bien, mais me perd mon style css...(je recupere bien l'argument 'test'
    C'est normal avec des liens relatifs et une arborescence virtuelle due à votre réécriture puisque cette dernière fausse où il va chercher ses ressources annexes (un lien relatif A étant résolu en /photos/A et non plus /A par exemple). C'est un sujet récurrent sur le forum Apache (solutions : une balise base href, des liens HTTP absolus et non relatifs, capturer/réécrire celles-ci mais ça peut vite devenir ingérable).

  5. #5
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    mon .htaccess est a la racine, donc theoriquement, quand je redirige sur index.php, c'est celui de la racine...

    de plus, la redirection de localhost/photos fonctionne correctement, (quand je n'ai pas d'arguments, j'affiche la liste des albums, si j'ai le nom de l'album, je l'affiche...)
    donc : localhost/photos = ok et css ok
    localhost/photos/test = ok mais sans le css
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Aucun rapport, c'est bien le point de vue du client qu'il faut considérer. Il ne lit pas les htaccess et une réécriture est opérée côté serveur (tout le contraire d'une redirection).

    Votre réécriture (photos/*) est une arborescence virtuelle : elle fait croire au client (qui n'a aucune connaissance de cette réécriture) qu'il y a un niveau de répertoire supplémentaire que réellement (RewriteRule ^photos/([a-z]+)$) donc le client, sur des chemins HTTP relatifs, demandent des ressources au mauvais endroit (cf l'exemple ci-dessus).

    N'utilisez pas de slashs comme "séparateurs" si vous n'aviez pas prévu la chose et/ou êtes incapable de le gérer sinon j'ai déjà donné des solutions précédemment ...

  7. #7
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    d'accord, j'avais pas vu ca comme ca...
    je crois que le conseil 'ne pas utiliser de slash' va etre bon xD
    merci encore pour ces eclaircissements.
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

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

Discussions similaires

  1. regexp URL rewritting dans lighttpd
    Par FotoXe33 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 28/07/2014, 15h03
  2. [URL Rewriting] Sans slash final dans l'URL
    Par yanice dans le forum Apache
    Réponses: 2
    Dernier message: 26/10/2007, 19h23
  3. [URL Rewriting] Utilisation de slashs
    Par djthomas dans le forum Apache
    Réponses: 3
    Dernier message: 17/09/2007, 11h11
  4. URL Rewriting problème de regexp ?
    Par pierrickg dans le forum Apache
    Réponses: 2
    Dernier message: 10/07/2007, 13h35
  5. [URLRewriting] Regexp pour url rewriting
    Par lolodev dans le forum Apache
    Réponses: 2
    Dernier message: 14/06/2007, 14h33

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