redirections de pages en php ?

11 réponses
Avatar
pehache
Bonjour,

j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type

1) http://xxx/article.php3?id_article=6296

sont devenues

2) http://xxx/article.php3?id_article=6296.html

Ce n'est pas très grave, Google va finir par réindexer le site à partir
de la racine http://xxx/ qui est toujours valide, mais je me demande si
il existerait un moyen simple sur le serveur pour rediriger les adresses
invalides (1) vers les adresses valides (2) ?

Je suppose qu'en créant un fichier "article.php3" qui va bien il doit y
avoir moyen ? Mais je n'y connais (presque) rien en php...

10 réponses

1 2
Avatar
pehache
Je mets fr.comp.lang.php en copie
Le 06/05/2017 à 10:01, pehache a écrit :
Bonjour,
j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type
1) http://xxx/article.php3?id_articleb96
sont devenues
2) http://xxx/article.php3?id_articleb96.html
Ce n'est pas très grave, Google va finir par réindexer le site à partir
de la racine http://xxx/ qui est toujours valide, mais je me demande si
il existerait un moyen simple sur le serveur pour rediriger les adresses
invalides (1) vers les adresses valides (2) ?
Je suppose qu'en créant un fichier "article.php3" qui va bien il doit y
avoir moyen ? Mais je n'y connais (presque) rien en php...
Avatar
Pierre www.zetrader.fr
Le 07/05/2017 à 10:12, pehache a écrit :
Je mets fr.comp.lang.php en copie
Le 06/05/2017 à 10:01, pehache a écrit :
Bonjour,
j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type
1) http://xxx/article.php3?id_articleb96
sont devenues
2) http://xxx/article.php3?id_articleb96.html
Ce n'est pas très grave, Google va finir par réindexer le site à partir
de la racine http://xxx/ qui est toujours valide, mais je me demande si
il existerait un moyen simple sur le serveur pour rediriger les adresses
invalides (1) vers les adresses valides (2) ?
Je suppose qu'en créant un fichier "article.php3" qui va bien il doit y
avoir moyen ? Mais je n'y connais (presque) rien en php...


Si tu veux faire une redirection 301 dans une php, tu mets ce code :
<?php
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.exemple.net/repertoire/page.php");
exit();
?>
Si tu veux le faire au niveau du fichier htaccess, il faut mettre :
RedirectPermanent /repertoire/page-a-rediriger.html
http://www.exemple.net/repertoire/page-de-destination.html
Si c'est un répertoire entier :
RedirectPermanent /repertoire
http://www.exemple.net/repertoire-de-destination
--
http://zetrader.info & http://zetrader.fr
Forum http://zeforums.com - http://aribaut.com
Avatar
Pierre www.zetrader.fr
Le 08/05/2017 à 12:15, Pierre www.zetrader.fr a écrit :
Le 07/05/2017 à 10:12, pehache a écrit :
Je mets fr.comp.lang.php en copie
Le 06/05/2017 à 10:01, pehache a écrit :
Bonjour,
j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type
1) http://xxx/article.php3?id_articleb96
sont devenues
2) http://xxx/article.php3?id_articleb96.html
Ce n'est pas très grave, Google va finir par réindexer le site à partir
de la racine http://xxx/ qui est toujours valide, mais je me demande si
il existerait un moyen simple sur le serveur pour rediriger les adresses
invalides (1) vers les adresses valides (2) ?
Je suppose qu'en créant un fichier "article.php3" qui va bien il doit y
avoir moyen ? Mais je n'y connais (presque) rien en php...


Si tu veux faire une redirection 301 dans une php, tu mets ce code :
<?php
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.exemple.net/repertoire/page.php");
exit();
?>
Si tu veux le faire au niveau du fichier htaccess, il faut mettre :
RedirectPermanent /repertoire/page-a-rediriger.html
http://www.exemple.net/repertoire/page-de-destination.html
Si c'est un répertoire entier :
RedirectPermanent /repertoire
http://www.exemple.net/repertoire-de-destination

Il y a beaucoup d'articles à rediriger ?
Pour savoir si c'est faisable à la main dans la page php ou si il vaut
mieux créer une règle.
--
http://zetrader.info & http://zetrader.fr
Forum http://zeforums.com - http://aribaut.com
Avatar
Olivier Miakinen
Le 06/05/2017 10:01, pehache a écrit :
j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type
1) http://xxx/article.php3?id_articleb96
sont devenues
2) http://xxx/article.php3?id_articleb96.html
Ce n'est pas très grave, Google va finir par réindexer le site à partir
de la racine http://xxx/ qui est toujours valide, mais je me demande si
il existerait un moyen simple sur le serveur pour rediriger les adresses
invalides (1) vers les adresses valides (2) ?

C'est un serveur Apache ? As-tu pensé à essayer « Options +MultiViews »
dans le .htaccess ?
--
Olivier Miakinen
Avatar
pehache
Le 08/05/2017 à 12:17, Pierre www.zetrader.fr a écrit :
Le 08/05/2017 à 12:15, Pierre www.zetrader.fr a écrit :
Le 07/05/2017 à 10:12, pehache a écrit :
Je mets fr.comp.lang.php en copie
Le 06/05/2017 à 10:01, pehache a écrit :
Bonjour,
j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type
1) http://xxx/article.php3?id_articleb96
sont devenues
2) http://xxx/article.php3?id_articleb96.html
Ce n'est pas très grave, Google va finir par réindexer le site à partir
de la racine http://xxx/ qui est toujours valide, mais je me demande si
il existerait un moyen simple sur le serveur pour rediriger les
adresses
invalides (1) vers les adresses valides (2) ?
Je suppose qu'en créant un fichier "article.php3" qui va bien il doit y
avoir moyen ? Mais je n'y connais (presque) rien en php...


Si tu veux faire une redirection 301 dans une php, tu mets ce code :
<?php
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.exemple.net/repertoire/page.php");
exit();
?>
Si tu veux le faire au niveau du fichier htaccess, il faut mettre :
RedirectPermanent /repertoire/page-a-rediriger.html
http://www.exemple.net/repertoire/page-de-destination.html
Si c'est un répertoire entier :
RedirectPermanent /repertoire
http://www.exemple.net/repertoire-de-destination

Il y a beaucoup d'articles à rediriger ?

Environ 6500 ;)
Pour savoir si c'est faisable à la main dans la page php ou si il vaut
mieux créer une règle.
Avatar
pehache
Le 06/05/2017 à 10:01, pehache a écrit :
Bonjour,
j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type
1) http://xxx/article.php3?id_articleb96
sont devenues
2) http://xxx/article.php3?id_articleb96.html

En fait plus exactement
2) http://xxx/article.php3%3Fid_articleb96.html
Ce n'est pas très grave, Google va finir par réindexer le site à partir
de la racine http://xxx/ qui est toujours valide, mais je me demande si
il existerait un moyen simple sur le serveur pour rediriger les adresses
invalides (1) vers les adresses valides (2) ?
Je suppose qu'en créant un fichier "article.php3" qui va bien il doit y
avoir moyen ? Mais je n'y connais (presque) rien en php...

On m'a donné par ailleurs la solution :
<?php
$id_article=$_GET["id_article"];
if (substr($id_article,-4)!="html") {
header('Location:
'.$_SERVER["SCRIPT_URI"]."%3F".$_SERVER["QUERY_STRING"].".html");
exit(); }
?>
Ca marche.
Avatar
pehache
Le 08/05/2017 à 15:53, Olivier Miakinen a écrit :
Le 06/05/2017 10:01, pehache a écrit :
j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type
1) http://xxx/article.php3?id_articleb96
sont devenues
2) http://xxx/article.php3?id_articleb96.html
Ce n'est pas très grave, Google va finir par réindexer le site à partir
de la racine http://xxx/ qui est toujours valide, mais je me demande si
il existerait un moyen simple sur le serveur pour rediriger les adresses
invalides (1) vers les adresses valides (2) ?

C'est un serveur Apache ?

Oui (hébergement OVH)
As-tu pensé à essayer « Options +MultiViews »
dans le .htaccess ?

Ca fait quoi ?
Avatar
Denis Beauregard
Le Sat, 6 May 2017 10:01:59 +0200, pehache
écrivait dans fr.comp.infosystemes.www.auteurs:
Bonjour,
j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type
1) http://xxx/article.php3?id_articleb96
sont devenues
2) http://xxx/article.php3?id_articleb96.html
Ce n'est pas très grave, Google va finir par réindexer le site à partir
de la racine http://xxx/ qui est toujours valide, mais je me demande si
il existerait un moyen simple sur le serveur pour rediriger les adresses
invalides (1) vers les adresses valides (2) ?
Je suppose qu'en créant un fichier "article.php3" qui va bien il doit y
avoir moyen ? Mais je n'y connais (presque) rien en php...

J'ai ajouté ces règles (parmi un grand nombre !) à mon .htaccess
RewriteEngine on
RewriteRule ^gfan/gfan/([0-2][0-9][0-9])/([0-9]+).php$
http://www.monsite.com/genealogie-quebec-genealogy/$1/$2.php [R01,L]
Ici, on a $1 = ([0-2][0-9][0-9]) ou un chiffre de 001 à 299
qui est le dossier avant et après, et $2 = ([0-9]+).php
soit la page en soi, avant et après.
Denis
Avatar
Pierre www.zetrader.fr
Le 08/05/2017 à 19:15, pehache a écrit :
Le 06/05/2017 à 10:01, pehache a écrit :
Bonjour,
j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type
1) http://xxx/article.php3?id_articleb96
sont devenues
2) http://xxx/article.php3?id_articleb96.html

En fait plus exactement
2) http://xxx/article.php3%3Fid_articleb96.html
Ce n'est pas très grave, Google va finir par réindexer le site à partir
de la racine http://xxx/ qui est toujours valide, mais je me demande si
il existerait un moyen simple sur le serveur pour rediriger les adresses
invalides (1) vers les adresses valides (2) ?
Je suppose qu'en créant un fichier "article.php3" qui va bien il doit y
avoir moyen ? Mais je n'y connais (presque) rien en php...

On m'a donné par ailleurs la solution :
<?php
$id_article=$_GET["id_article"];
if (substr($id_article,-4)!="html") {
header('Location:
'.$_SERVER["SCRIPT_URI"]."%3F".$_SERVER["QUERY_STRING"].".html");
exit(); }
?>
Ca marche.

Intéressant, merci pour l'info, cela peut être intéressant dans d'autres
cas :)
--
http://zetrader.info & http://zetrader.fr
Forum http://zeforums.com - http://aribaut.com
Avatar
Olivier Miakinen
Le 08/05/2017 19:16, pehache a écrit :
j'ai converti un vieux blog SPIP (conservé uniquement comme archive en
ligne, mais qui n'est plus utilisé) en version statique en l'aspirant
avec wget. Ca marche, mais il y a un petit souci : les adresses de type
1) http://xxx/article.php3?id_articleb96
sont devenues
2) http://xxx/article.php3?id_articleb96.html



En réalité :
2) http://xxx/article.php3%3Fid_articleb96.html
C'est un serveur Apache ?

Oui (hébergement OVH)

Ok.
As-tu pensé à essayer « Options +MultiViews »
dans le .htaccess ?

Ca fait quoi ?

Ça permet de donner une URL sans extension, et que le serveur
trouve lui-même le fichier avec extension qui va bien. Mais vu
qu'il y a autre chose que l'extension qui diffère (%3F au lieu
de ?) mon idée ne pouvait pas fonctionner dans ton cas.
--
Olivier Miakinen
1 2