Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2011, 14h51   #1
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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 :
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
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 23h15   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 297
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 297
Points : 8 580
Points : 8 580
Les directives Redirect* ne travaillent pas sur la query string. Pour cela il faut utiliser mod_rewrite et une RewriteCond sur %{QUERY_STRING}.
__________________

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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 08h38   #3
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour et merci pour la réponse,

J'ai essayé :

Code :
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.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 10h20   #4
Membre du Club
 
Avatar de Paniez
 
Inscription : janvier 2003
Messages : 160
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2003
Messages : 160
Points : 54
Points : 54
Citation:
Envoyé par heretik25 Voir le message
Bonjour et merci pour la réponse,

J'ai essayé :

Code :
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
Paniez est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/12/2011, 11h19   #5
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour,

Pas mieux malheureusement.

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

Voici mon .htaccess
Code :
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 ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 12h14   #6
Membre du Club
 
Avatar de Paniez
 
Inscription : janvier 2003
Messages : 160
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2003
Messages : 160
Points : 54
Points : 54
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
Paniez est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/12/2011, 12h50   #7
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Re,

Cela me renvoi un 500 Internal Server Error
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 22h30   #8
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 297
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 297
Points : 8 580
Points : 8 580
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 :
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
__________________

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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 10h33   #9
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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 :
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 :
/php/articles/voir_article.php?id_article=1
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2011, 18h22   #10
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 297
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 297
Points : 8 580
Points : 8 580
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}.
__________________

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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 12h24   #11
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour et merci pour votre réponse,

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


Code :
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.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 27/12/2011, 17h54   #12
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 297
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 297
Points : 8 580
Points : 8 580
Rien ne t'oblige à avoir des ([...]), tu peux mettre directement les valeurs qui t'intéressent.
__________________

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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 18h47   #13
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Ok, merci, je vais essayer

J'ai essayé ceci :

Code :
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
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h34.


 
 
 
 
Partenaires

Hébergement Web