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] Problème mod_rewrite sur permière connexion


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut [URL Rewriting] Problème mod_rewrite sur permière connexion
    Bonjour à tous.

    Sur un serveur Debian Etch-Apache2.2.3, j' ai fait des redirections via le .htaccess comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    RewriteEngine On
    RewriteBase /mondomaine/
    ErrorDocument 404 /mondomaine/index.php?option=com_404
     
    RewriteRule ^((fr|de|en)\/(.*\.html)?)$ index.php?$1 [L,NC]
    Ca renvoie les adresses du genre :

    /mondomaine/fr/shop/article1.html

    vers
    /mondomaine/index.php?fr/shop/article1.html (correction)

    La transformation réelle des paramètres se fait en php

    Tout marche à peu près bien sauf que ...

    Lors de ma première connexion , je ne peux pas accéder qu'au seules pages :
    1. /mondomaine/
    2. /mondomaine/fr/ (ou ../en/ ou ../de)


    Si j'éssaye d'accéder à une adresse genre /mondomaine/fr/shop/details_order-13.html

    J'obtiens sous firefox :
    Redirection de page incorrecte
    Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.
    # La cause de ce problème peut être la désactivation ou le refus
    des cookies.
    Dans le fichier access.log ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    192.168.1.1 - - [11/Mar/2008:11:29:50 +0100] "GET /mondomaine/fr/shop/details_order-13.html HTTP/1.1" 401 561 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"
    192.168.1.1 - mondomaine [11/Mar/2008:11:30:04 +0100] "GET /mondomaine/fr/shop/details_order-13.html HTTP/1.1" 301 26 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"
    La 2ème ligne se répète 20 fois puis firefox plante. Sous IE, cela ne s'arrête que si l'on clique sur X (annuler)


    A noter qu'une fois cette première connexion effectuée, le reste des adresses marche parfaitement même dans une autre fenêtre/onglet.
    Par contre, un fois un bon moment passé sans naviguer sur le site, le problème réapparait si l'on réessaye de suivre un lien ou rafraîchir la page courante.

    Quelqu'un aurait il une idée sur l'origine de cette erreur ?

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Citation Envoyé par day811 Voir le message
    Ca renvoie les adresses du genre :
    /mondomaine/fr/shop/article1.html
    vers
    /mondomaine/index.php?shop/article1.html
    Je suis pas certain que /mondomaine/index.php?shop/article1.html soit correct en tant qu'URL.
    Tu devrais plutôt faire pointer sur /mondomaine/index.php?shop=article1.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(fr|de|en)/((.*\.html)?)$ index.php?$1=$2 [L,NC]

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Je n'arrive pas à trouver la syntaxe de la chaine query_string

    d-Rek, la modification que tu proposes m'oblige à tout refaire mon passage de paramètres.
    Quelqu'un pourrait-il confirmer que la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /mondomaine/index.php?fr/shop/article1.html
    n'est pas correct.

    Les logs de mod_rewrite bouclent sur la séquence suivante :
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8cae38/initial] (3) [perdir /var/www/mondomaine/] add path info postfix: /var/www/mondomaine/fr -> /var/www/mondomaine/fr/shop/order_details-10.html
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8cae38/initial] (3) [perdir /var/www/mondomaine/] strip per-dir prefix: /var/www/mondomaine/fr/shop/order_details-10.html -> fr/shop/order_details-10.html
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8cae38/initial] (3) [perdir /var/www/mondomaine/] applying pattern '^((fr|de|en)\/(.*\.html)?)$' to uri 'fr/shop/order_details-10.html'
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8cae38/initial] (2) [perdir /var/www/mondomaine/] rewrite 'fr/shop/order_details-10.html' -> 'index.php?fr/shop/order_details-10.html'
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8cae38/initial] (3) split uri=index.php?fr/shop/order_details-10.html -> uri=index.php, args=fr/shop/order_details-10.html
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8cae38/initial] (3) [perdir /var/www/mondomaine/] add per-dir prefix: index.php -> /var/www/mondomaine/index.php
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8cae38/initial] (2) [perdir /var/www/mondomaine/] trying to replace prefix /var/www/mondomaine/ with /mondomaine/
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8cae38/initial] (1) [perdir /var/www/mondomaine/] internal redirect with /mondomaine/index.php [INTERNAL REDIRECT]
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8d5e18/initial/redir#1] (3) [perdir /var/www/mondomaine/] strip per-dir prefix: /var/www/mondomaine/index.php -> index.php
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8d5e18/initial/redir#1] (3) [perdir /var/www/mondomaine/] applying pattern '^((fr|de|en)\/(.*\.html)?)$' to uri 'index.php'
    192.168.1.1 - mondomaine [12/Mar/2008:10:12:46 +0100] [test.aude-line.com/sid#6718d8][rid#8d5e18/initial/redir#1] (1) [perdir /var/www/mondomaine/] pass through /var/www/mondomaine/index.php

  4. #4
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Ouép vu qu'il n'y a pas de symbole égal, la chaine "fr/shop/article1.html" correspond au nom d'une variable GET.
    La question est : Est-ce qu'un nom d'une variable GET peut contenir des points et/ou des slashs ?

    Edit : oui, apparament. Donc je sèche.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    d-Rek,

    J'ai essayé tout de même de remplacer les "/" par des "," et le problème reste identique. (marche tout le temps sauf première connexion)
    Dans mon traitement, je travaille directement sur $_SERVER['QUERY_STRING']
    et je redéfinis les variables get et post manuellement et ensuite je réécris la chaine $_SERVER['QUERY_STRING'].
    Donc le nom des variables post ou get est peu important.

    Les logs indiquent clairement que la réécriture de l'adresse à fonctionné.

    Merci de ton aide, je vais chercher tout de même dans cette direction

  6. #6
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Qu'appelles-tu "première connexion" ?

    Bon courage
    Tiens nous éventuellement au courant

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

Discussions similaires

  1. [URL Rewriting] problème sur une règle
    Par Mike91 dans le forum Apache
    Réponses: 1
    Dernier message: 13/09/2007, 16h20
  2. Réponses: 3
    Dernier message: 31/07/2007, 16h40
  3. URL Rewriting problème de regexp ?
    Par pierrickg dans le forum Apache
    Réponses: 2
    Dernier message: 10/07/2007, 13h35
  4. [URL Rewriting] Problème URL Rewriting -> CSS
    Par Cartman.inc dans le forum Apache
    Réponses: 8
    Dernier message: 23/04/2007, 14h29

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