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 :

RedirectPermanent => aucune redirection


Sujet :

Apache

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut RedirectPermanent => aucune redirection
    Bonjour,

    j'ai essayé de placer ce code dans un fichier .htaccess à la racine de mon site mais il n'y a aucun effet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RedirectPermanent /php/balades/voir_balade.php?type_balade=0&numdep=54&voir_balade=515 http://www.partir-en-vtt.com/php/articles/voir_article.php?id_article=1
    Par avance, merci de me dire où est-ce que ce code fait défaut.

    Un grand merci par avance

  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
    Par défaut
    Les directives Redirect* ne travaillent pas sur la query string. Pour cela il faut utiliser mod_rewrite et une RewriteCond sur %{QUERY_STRING}.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Bonjour et merci pour la réponse,

    J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	RewriteCond %{QUERY_STRING} ^type_balade=([0-9]*)&numdep=([0-9]*)&voir_balade=([0-9]*)$
    	RewriteRule ^php/balades/voir_balade\.php?type_balade=0&numdep=54&voir_balade=515$ /php/articles/voir_article.php?id_article=1
    Sans succès, une idée ?

    Merci.

  4. #4
    Membre confirmé Avatar de Paniez
    Homme Profil pro
    Communication & Webservices
    Inscrit en
    Janvier 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Communication & Webservices
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 186
    Par défaut
    Citation Envoyé par heretik25 Voir le message
    Bonjour et merci pour la réponse,

    J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	RewriteCond %{QUERY_STRING} ^type_balade=([0-9]*)&numdep=([0-9]*)&voir_balade=([0-9]*)$
    	RewriteRule ^php/balades/voir_balade\.php?type_balade=0&numdep=54&voir_balade=515$ /php/articles/voir_article.php?id_article=1
    Sans succès, une idée ?

    Merci.
    Et en faisant :
    RewriteRule ^php/balades/voir_balade\\.php?type_balade=0&numdep=54&voir_balade=515$ /php/articles/voir_article.php?id_article=1

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Bonjour,

    Pas mieux malheureusement.

    Nota : Le premier anti slash avait été mis pour espacer le .

    Voici 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
     
    Options -MultiViews
    AddType x-mapp-php5 .php
    AddHandler x-mapp-php5 .php
    ErrorDocument 404 /php/page_404.php
     
    <IfModule mod_rewrite.c>
    	RewriteEngine On
     
    	RewriteCond %{QUERY_STRING} ^type_balade=([0-9]*)&numdep=([0-9]*)&voir_balade=([0-9]*)$
    	RewriteRule ^php/balades/voir_balade\.php?type_balade=0&numdep=54&voir_balade=515$ /php/articles/voir_article.php?id_article=1 
     
    </IfModule>


    une autre idée ?

  6. #6
    Membre confirmé Avatar de Paniez
    Homme Profil pro
    Communication & Webservices
    Inscrit en
    Janvier 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Communication & Webservices
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 186
    Par défaut
    Re,

    Et en passant par un proxypass :
    ProxyPass /php/balades/voir_balade\.php?type_balade=0&numdep=54&voir_balade=515 /php/articles/voir_article.php?id_article=1

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Re,

    Cela me renvoi un 500 Internal Server Error

  8. #8
    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
    Par défaut
    Un petit retour aux sources semble nécessaire, visiblement :
    Citation Envoyé par Doc Apache mod_rewrite#RewriteRule
    Qu'est-ce qui est comparé ?

    Dans un contexte de serveur virtuel VirtualHost, le modèle est tout d'abord comparé à la portion de l'URL située entre le nom d'hôte éventuellement accompagné du port, et la chaîne de paramètres (par exemple "/app1/index.html").

    Dans les contextes de répertoire Directory et htaccess, le modèle est tout d'abord comparé au chemin du système de fichiers, après suppression du préfixe ou chemin de base ayant conduit à la règle RewriteRule (par exemple "app1/index.html" ou "index.html" selon l'endroit où les directives sont définies).

    Si vous voulez effectuer une comparaison en tenant compte du nom d'hôte, du port ou de la chaîne de paramètres, utilisez une directive RewriteCond comportant les variables %{HTTP_HOST}, %{SERVER_PORT}, ou %{QUERY_STRING}.
    Il faut tout simplement retirer la query string des RewriteRule : si on a pris la peine de passer par une RewriteCond c'est parce que la query string n'est pas testée avec RewriteRule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} ^type_balade=([0-9]*)&numdep=([0-9]*)&voir_balade=([0-9]*)$
    RewriteRule ^php/balades/voir_balade\.php$ /php/articles/voir_article.php?id_article=1

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Bonjour et merci pour la réponse,

    Cependant, il s'agit bien d'un article précis que je souhaite rediriger vers un autre bien précis.

    Cet article :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /php/balades/voir_balade\.php?type_balade=0&numdep=54&voir_balade=515
    Doit être renvoyé précisément vers celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /php/articles/voir_article.php?id_article=1

  10. #10
    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
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Les directives Redirect* ne travaillent pas sur la query string. Pour cela il faut utiliser mod_rewrite et une RewriteCond sur %{QUERY_STRING}.

  11. #11
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Bonjour et merci pour votre réponse,

    Cependant, j'ai essayé ce que vous m'avez dit


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} ^type_balade=([0-9]*)&numdep=([0-9]*)&voir_balade=([0-9]*)$
    RewriteRule ^php/balades/voir_balade\.php$ /php/articles/voir_article.php?id_article=1
    Et ce n'est pas ce que j’attendais étant donné que que je souhaite rediriger qu'une url précise avec des variables GET précises vers une url précise.

  12. #12
    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
    Par défaut
    Rien ne t'oblige à avoir des ([...]), tu peux mettre directement les valeurs qui t'intéressent.

  13. #13
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Ok, merci, je vais essayer

    J'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} ^type_balade=0&numdep=54&voir_balade=515$
    RewriteRule ^php/balades/voir_balade\.php$ /php/articles/voir_article.php?id_article=1
    C'est étonnant, car apparemment, il y a bien une redirection mais l'url ne change pas. Avez-vous une idée du pourquoi du comment ?

    Merci.

    EDIT : En ajoutant, [R=301,L], c'est ok

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

Discussions similaires

  1. Redirect, Forward aucun ne marche?!
    Par MinsK dans le forum Servlets/JSP
    Réponses: 21
    Dernier message: 16/09/2010, 15h06
  2. Réponses: 2
    Dernier message: 07/06/2010, 22h43
  3. Réponses: 3
    Dernier message: 02/12/2008, 13h29
  4. [Kylix] Open C++ - aucune compilation
    Par MichelC dans le forum EDI
    Réponses: 1
    Dernier message: 03/02/2003, 18h11
  5. [reseaux] redirection de flux
    Par Olive1808 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 12/08/2002, 09h24

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