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 :

Rewrite sans slash ne marche pas


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Par défaut Rewrite sans slash ne marche pas
    Bonjour,
    Comme c'est mon premier message, je me présente : Saleh d'Algérie, développeur PHP & designer :
    Mon problème est assez classique, mais auquel je ne trouve toujours pas de solution :

    En voulant rediriger n'importe quel url de type :
    www.domaine.com/dossier
    vers :
    www.domaine.com/dossiersX/page.php?id=dossier
    avec le fichier .htaccess suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteEngine on
    RewriteRule ^(.*)/$  /dossierX/page.php?id=$1 [L]
    les url demandés avec "/" à la fin marchent mais sans le "/" cela ne marche pas ...

    J'ai essayé toutes sortes de commandes comme le :
    RewriteBase /
    mais toujours rien, auriez vous une idée ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    Salut !

    Il suffit que tu définisse les deux redirections :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RewriteEngine on
    RewriteRule ^(.*)/$  /dossierX/page.php?id=$1 [L]
    RewriteRule ^(.*)$  /dossierX/page.php?id=$1 [L]
    Mais ce n'est pas tres securisé.... mais c'est normal que ça ne marche pas car il ne fait la redirection QUE si il y a un slash à la fin ( d'ou le "/$" ).

    Peut etre pourrais-tu prevoir une URL du genre www.monsite.com/dossier-id_dossier

    De plus, si ton id de dossier n'est composé que de chiffres, je te conseille cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteEngine on
    RewriteRule ^([0-9]*)$  /dossierX/page.php?id=$1 [L]
    ça devrait marcher avec et sans le slash...

    Bonne chance !!! et rassure toi, je n'ai pas répondu à la blonde parisienne mais au Saleh Algérien ;-)

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Par défaut
    Citation Envoyé par Aureliien
    Salut !

    Il suffit que tu définisse les deux redirections :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RewriteEngine on
    RewriteRule ^(.*)/$  /dossierX/page.php?id=$1 [L]
    RewriteRule ^(.*)$  /dossierX/page.php?id=$1 [L]
    Mais ce n'est pas tres securisé.... mais c'est normal que ça ne marche pas car il ne fait la redirection QUE si il y a un slash à la fin ( d'ou le "/$" ).

    Peut etre pourrais-tu prevoir une URL du genre www.monsite.com/dossier-id_dossier

    De plus, si ton id de dossier n'est composé que de chiffres, je te conseille cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteEngine on
    RewriteRule ^([0-9]*)$  /dossierX/page.php?id=$1 [L]
    ça devrait marcher avec et sans le slash...

    Bonne chance !!! et rassure toi, je n'ai pas répondu à la blonde parisienne mais au Saleh Algérien ;-)
    Merci Aureliien,
    Avec ta première proposition cela donne une erreure 500 et avec la deuxième, je n'ai pas que des chiffres mais aussi des caractères alphabétiques

    Je ne sais pas pourquoi à chaque fois que j'enlève le "/" dans :
    ça donne aussitôt l'erreure 500, peut être que c'est du à la version d'apache

    S'il y'a d'autres propositions je suis preneur, et je galère en atendant ...

    Respect.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Par défaut Solution trouvé
    Bon, pour ne pas laisser mon premier post ouvert pour rien, vu que personne ne veut aider le pauvre de moi, et après que j'ai vidé ce que j'avais comme matière grise dans les regex, j'ai enfin trouver une solution après un milliard de tests ...
    Voila j'ai mis un premier fichier htaccess avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RewriteEngine on 
    RewriteRule ^(.*)([^/])$  /$1$2/? [R=301,L]
    RewriteRule ^(.*)/$  /dossierx/page.php?id=$1 [L]
    ainsi qu'un deuxième fichier htaccess dans le dossier dossierx avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule ^[(.*)/dossierx/]/$  /page.php?id=$1 [L]
    J'espère ainsi aider d'autres personnes qui galèrent en cherchant des solutions à un problème similaire ...

    Assalemou 3aleykoum.

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

Discussions similaires

  1. [URL rewriting] Règle qui ne marche pas en local
    Par shadeoner dans le forum Apache
    Réponses: 1
    Dernier message: 02/11/2010, 17h45
  2. Réponses: 2
    Dernier message: 05/03/2010, 11h25
  3. [URL Rewriting] Sans slash final dans l'URL
    Par yanice dans le forum Apache
    Réponses: 2
    Dernier message: 26/10/2007, 19h23
  4. Réponses: 25
    Dernier message: 16/02/2007, 15h37
  5. Réponses: 1
    Dernier message: 24/09/2006, 14h36

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