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 ne fonctionne pas parfaitement


Sujet :

Apache

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut URL rewriting ne fonctionne pas parfaitement
    Bonjour.

    Je viens vers vous car je suis bloqué.
    J'ai mis en place pour un client un système d'url rewriting pour ses dossiers.

    Les urls sont de la forme : http://domaine.com/litterature_EU/LABO_FR

    Tout à l'air bon en principe vu que mes pages s'affichent correctement. Pourtant, l'url de ma barre d'adresse du navigateur change aussi et donne:
    http://domaine.com/litterature_EU/in...e=labo&lang=fr

    J'aimerai que cette réécriture n'opère pas dans la barre de mon navigateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    RewriteEngine On
     
    DirectoryIndex index.php
     
    RewriteCond %{HTTP_HOST} ^domaine\.com$ [NC]
    RewriteRule ^(/)?$ litterature_EU/ [L]
    RewriteCond %{HTTP_HOST} ^domaine\.com$ [NC]
    RewriteRule ^([a-zA-Z]+)_([a-zA-Z]+)\/([A-Z]+)_([A-Z]+)$  http://domaine.com/$1_$2/index.php?type=${lc:$3}&lang=${lc:$4} [L]
     
     
    RewriteCond %{HTTP_HOST} ^m\.domaine\.com$ [NC]
    RewriteRule ^(/)?$ litterature_EU/ [L]
    RewriteCond %{HTTP_HOST} ^m\.domaine\.com$ [NC]
    RewriteRule ^([a-zA-Z]+)_([a-zA-Z]+)\/([A-Z]+)_([A-Z]+)$  http://m.domaine.com/$1_$2/mobile.php?type=$3&lang=$4 [L]
     
    //le client ayant eu des habitués sur un autre domaine à une époque, j'ai mis ça en place pour les rediriger automatiquement
    RewriteCond %{HTTP_HOST} other.com [NC]
    RewriteRule ^(.*)$ http://domaine.com/litterature_EU [QSA,L,R=301]
     
    RewriteCond %{REQUEST_URI} !^/litterature_EU/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /litterature_EU/$1
    Et j'ajouterai mon vhost, je ne sais pas si ça à de l'importance mais bon...
    C'est un serveur dédié sur lequel on a plusieurs sites web, tous configuré de la même manière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    NameVirtualHost MYIP:80
     
    <VirtualHost MYIP:80>
        ServerAdmin webmaster@xeolia.com
        DocumentRoot "/home/project"
        ServerName domaine.com
        ServerAlias m.domaine.com
     
        RewriteMap lc int:tolower
     
        <Directory "/home/project">
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
        LogLevel warn
        ErrorLog /var/log/apache2/error-project.log
        CustomLog /var/log/apache2/access-project.log vhost_combined
    </VirtualHost>

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Bon et ben... J'ai trouvé. Il ne faut pas mettre le nom d'hôte et le http:// pour que le navigateur ne prenne pas en compte la réécriture. Peut-être que ça servira à quelqu'un.

    Voila donc à quoi ressemble maintenant mon .htaccess.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    RewriteEngine On
     
    DirectoryIndex index.php
     
    RewriteCond %{HTTP_HOST} ^domaine\.com$ [NC]
    RewriteRule ^(/)?$ litterature_EU/ [L]
    RewriteCond %{HTTP_HOST} ^domaine\.com$ [NC]
    RewriteRule ^([a-zA-Z]+)_([a-zA-Z]+)\/([A-Z]+)_([A-Z]+)$  /$1_$2/index.php?type=${lc:$3}&lang=${lc:$4} [L]
     
     
    RewriteCond %{HTTP_HOST} ^m\.domaine\.com$ [NC]
    RewriteRule ^(/)?$ litterature_EU/ [L]
    RewriteCond %{HTTP_HOST} ^m\.domaine\.com$ [NC]
    RewriteRule ^([a-zA-Z]+)_([a-zA-Z]+)\/([A-Z]+)_([A-Z]+)$  /$1_$2/mobile.php?type=$3&lang=$4 [L]
     
    //le client ayant eu des habitués sur un autre domaine à une époque, j'ai mis ça en place pour les rediriger automatiquement
    RewriteCond %{HTTP_HOST} other.com [NC]
    RewriteRule ^(.*)$ http://domaine.com/litterature_EU [QSA,L,R=301]
     
    RewriteCond %{REQUEST_URI} !^/litterature_EU/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /litterature_EU/$1

  3. #3
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Effectivement, si tu mets un url complètes en 2e paramètre de RewriteRule, ça n'est plus une réécriture qui est effectuée mais une redirection. Et ça n'est pas du tout la même chose.
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

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

Discussions similaires

  1. L'URL rewriting ne fonctionne pas avec EasyPHP 5.3
    Par valfritsch dans le forum Apache
    Réponses: 6
    Dernier message: 05/12/2009, 13h18
  2. [1.x] [Linux] Url rewriting ne fonctionne pas
    Par Bleys dans le forum Symfony
    Réponses: 7
    Dernier message: 06/06/2009, 18h54
  3. URL Rewriting : ne fonctionne pas
    Par Guigui13 dans le forum Apache
    Réponses: 2
    Dernier message: 28/11/2008, 21h57
  4. [URL Rewriting] ne fonctionne pas avec [a-z]+
    Par krfa1 dans le forum Apache
    Réponses: 1
    Dernier message: 14/05/2008, 12h41
  5. Règle URL rewriting ne fonctionnant pas.
    Par Romalafrite dans le forum Apache
    Réponses: 2
    Dernier message: 01/10/2006, 09h10

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