URL Rewriting et redirection : comment allier les deux ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : URL Rewriting et redirection : comment allier les deux ?

Re: URL Rewriting et redirection : comment allier les deux ?

par Benamour Jr » 18 sept. 2010, 16:41

En fait ca marche, me suis gourré dans le regex xD

Code : Tout sélectionner

if (preg_match("#^/dossier\.php#", $_SERVER['REQUEST_URI'])) { $url = 'http://e-storia.info/dossier/'.$_GET['type'].'/'.$_GET['nom'].'-'.$_GET['id'].'-'.$_GET['page']; header("Status: 301 Moved Permanently", false, 301); header("Location: ".$url); }

Re: URL Rewriting et redirection : comment allier les deux ?

par Benamour Jr » 18 sept. 2010, 15:39

J'ai essayé ceci, inséré tout en haut de ma page dossier.php :

Code : Tout sélectionner

if (preg_match("#/dossier\.php$#", $_SERVER['REQUEST_URI'])) { $url = 'http://e-storia.info/dossier/'.$_GET['type'].'/'.$_GET['nom'].'-'.$_GET['id'].'-'.$_GET['page']; header("Status: 301 Moved Permanently", false, 301); header("Location: ".$url); }
mais ca ne marche pas :(

Re: URL Rewriting et redirection : comment allier les deux ?

par Ryle » 18 sept. 2010, 15:35

Je ne l'ai pas essayé, mais il me semble que tu peux détecter en php si l'url qui a permit d'ouvrir la page est celle ré-écrite, ou l'url réelle du script php (ex avec $_SERVER['REQUEST_URI']).

A partir de là, si l'url utilisée n'est pas celle ré-écrite tu rediriges l'utilisateur vers celle-ci avec un header avant tout traitement :
header("HTTP/1.1 301 Moved Permanently");
header("Location: ....");

Re: URL Rewriting et redirection : comment allier les deux ?

par Benamour Jr » 18 sept. 2010, 13:04

Oui, la page existera toujours, mais je souhaiterais simplement une redirection 301. Pour que lorsque l'on arrive sur la page dossier.php?type=individu&nom=barack_obama&id=1&page=1 (qui existera toujours, je suis bien d'accord) on soit redirigé vers /dossier/barack_obama-1-1

C'est normalement possible, dixit le tutorial de webrankinfo :

"Erreur n°4 : avoir 2 types d'URL indexables (réécrites et classiques)

Imaginons que vous veniez de mettre en place la réécriture d'URL (URL Rewriting) sur votre forum. Pour reprendre l'exemple précédent, les URL de pages de discussion sont passées de www.example.com/topic.php?t=456 à www.example.com/topic-456.html. Avez-vous vérifié que vous interdisez l'indexation des pages avec l'ancien format d'URL ? D'ailleurs la meilleure solution dans ce cas est même de rediriger de façon permanente (code 301) chaque page à l'ancien format vers la page équivalente avec le nouveau format."

Re: URL Rewriting et redirection : comment allier les deux ?

par stealth35 » 18 sept. 2010, 12:48

Que veux-tu dire par la ?
Dans mon code mes liens renvoient vers des url formatés de type "/dossier/individu/barack_obama-1-1" mais ca n'empeche que les url dossier.php?type=individu&nom=barack_obama&id=1&page=1 existent. J'aimerais que ce dernier format renvoit automatiquement vers le premier, c'est possible ?
non
dossier.php?type=individu&nom=barack_obama&id=1&page=1 existera toujours

faut penser comme si le rewriting c'était un raccourcis, y'aura toujours le fichier de base et tu pourra toujours l'ouvrir par son vrai nom

Re: URL Rewriting et redirection : comment allier les deux ?

par Benamour Jr » 18 sept. 2010, 12:24

Que veux-tu dire par la ?
Dans mon code mes liens renvoient vers des url formatés de type "/dossier/individu/barack_obama-1-1" mais ca n'empeche que les url dossier.php?type=individu&nom=barack_obama&id=1&page=1 existent. J'aimerais que ce dernier format renvoit automatiquement vers le premier, c'est possible ?

Re: URL Rewriting et redirection : comment allier les deux ?

par stealth35 » 18 sept. 2010, 12:21

ca marche pas dans se sens la, c'est dans ton code que tu dois formater les liens :wink:

URL Rewriting et redirection : comment allier les deux ?

par Benamour Jr » 18 sept. 2010, 11:44

Bonjour,

J'ai cette ligne dans mon .htacces qui me permet d'afficher dans le navigateur une url de type http://e-storia.info/dossier/individu/Barack_Obama-1-1 :

Code : Tout sélectionner

RewriteRule ^dossier/([A-Za-z]{4,12})/([0-9A-Za-z_()&-]{2,100})-([0-9]+)-([0-9]+)$ dossier.php?type=$1&nom=$2&id=$3&page=$4 [L]
Je suis en ce moment occupé à optimiser le référencement du site et je souhaite donc supprimer la duplication du contenu (les pages http://e-storia.info/dossier/individu/Barack_Obama-1-1 et http://e-storia.info/dossier.php?type=i ... d=1&page=1 renvoient à la même page).

Est-ce que quelqu'un aurait la gentillesse de m'indiquer ce que je dois rajouter à mon .htaccess pour que toutes les pages pointant vers une url de type "http://e-storia.info/dossier.php?type=i ... d=1&page=1" renvoient vers une url de type "http://e-storia.info/dossier/individu/Barack_Obama-1-1" ?

Merci :)