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

Apache Discussion :

URL Rewriting + faux dossier


Sujet :

Apache

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut URL Rewriting + faux dossier
    Bonjour à tous,

    J'ai vu que le thème à été abordé beaucoup de fois (énormément de fois même et récemment en plus...)

    Mais dans aucun thread je n'ai trouvé la solution

    Voila,

    Je veux faire du rewriting avec un faux dossier dans l'adresse du genre :

    http://www.monsite.com/Collections-2009/nouveaute.html
    =
    http://www.monsite.com/pages?url=nouveaute.html

    j'ai essayé beaucoup de truc dans mon htaccess mais rien ne fonction, sinon aucune mise en page... que mes include apparaissait
    le dernier état de celui ci est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{REQUEST_URI} !^/Collections-2009/
    RewriteRule ^(.*)\.html pages.php?url=$1   [R]
    Donc je suis preneur de toute piste ou conseil

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Qu'est-ce qu'il ne te va pas dans ton dernier code ? Je vois 2 "choses" suspectes :
    • tu as mis un ! devant ^/... dans le RewriteCond. Il veut dire "applique le RewriteRule suivant si l'URL ne commence pas par /Collections-2009/. Or, j'ai l'impression que c'est l'inverse que tu cherches à faire : réécrire que si justement l'URL commence par /Collections-2009/. Me trompe-je ?
    • le [R] dans le RewriteRule va déclencher une redirection navigateur. J'imagine qu'au contraire tu voudrais que ce soit transparent pour l'utilisateur. Me trompe-je ?

    Si je ne me trompe pas, je dirais que ce qu'il te faut c'est cette unique ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^Collections-2009/(.*)\.html /pages.php?url$1 [L]

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    Ok,

    J'avais essayé ce code la et je rencontrais justement le soucis dont je parlais, aucune mise en page...

    Est ce qu'il faudrait mettre les liens en dure ou chose du genre?

    Car par sécurité j'utilise des abosult_path avec des define dans mon php...

    Car apperment, ce qui ressemblais à

    http://www.monsite.com/img/image01.jpg dans mon pages.php

    est surement interprété de la sorte apres l'url rewriting
    http://www.monsite.com/dossier/img/image01.jpg

    D'après ce que je comprends...

  4. #4
    Membre habitué Avatar de giltonic
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 109
    Points : 137
    Points
    137
    Par défaut
    En plus sur certains serveurs il faut ajouter Options -MultiViews pour que ca marche....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Options -MultiViews
    RewriteEngine On
    RewriteBase /
    RewriteRule ^Collections-2009/(.*)\.html /pages.php?url=$1 [L]
    Musique : Oasis | Photos : Panoramio

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    Ca ne marche pas, mais j'ai trouvé la solution en suivant la logique du Mac Giver

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine on
     
    RewriteRule ^Collections-2009/(.*)\.html /pages.php?url$1 [L]
    RewriteRule ^Collections-2009/(.*) /$1 [L]
    ps: c'est quand même celui qui à sortit quasiment toutes les solutions sur les thread url rewriting

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Par principe, c'est pas mal de mettre Options -MultiViews.

    Quand tu dis aucune mise en page, tu veux dire que tu récupères le code HTML de la bonne page mais qu'il n'y a pas les images, etc. ? Si c'est cela, peux-tu donner un extrait de code HTML d'une image qui ne s'affiche pas et la vraie URL qui marche de cette même image ?

    Je pense que le problème vient des URL relatives des images : vu que le navigateur considère que la page que tu affiches est dans un répertoire Collections-2009, il a envie de trouver les images dans ce répertoire ou l'un de ses sous-répertoires, or ce n'est pas vrai. Ce qu'il faut c'est modifier le code HTML pour que les URL des images, CSS, etc. commencent par / et pas directement par le nom d'un sous-répertoire ou des .. L'autre solution plus expéditive consiste à mettre une balise <base> dans les en-têtes (zone <head>) de ta page HTML pour indiquer http://serveur.com/ comme chemin de départ des URL relatives.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    Voila,

    Donc en mettant "/../img/" à la place de "../img/" ca fonctionne nikel.

    Merci encore pour votre aide

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

Discussions similaires

  1. Url rewriting et dossiers virtuels
    Par kfa1983 dans le forum Apache
    Réponses: 5
    Dernier message: 19/02/2011, 19h08
  2. [URL rewriting] Un dossier par lettre d'un mot
    Par Seb33300 dans le forum Apache
    Réponses: 3
    Dernier message: 12/02/2009, 11h38
  3. Réponses: 1
    Dernier message: 06/12/2007, 17h13
  4. [URL Rewriting] Redirection dossier vers lien
    Par alikharchafi dans le forum Apache
    Réponses: 13
    Dernier message: 16/10/2007, 14h48
  5. Réponses: 3
    Dernier message: 31/07/2007, 16h40

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