UR finit et après ?

  • Auteur de la discussion Auteur de la discussion 2dm
  • Date de début Date de début
WRInaute discret
Salut, j'aimerais savoir exactement quoi faire une fois l'url rewriting mis en place.

- je laisse les pages d'avant accesssible ? ( ca va me crée des pages satelites ?)
- je fait ca :
Code:
RewriteRule ^article.php?go=-([0-9]+) archives-$1.htm [R=301]
- je fais autre chose :D

merci de vos conseils éclairés qui guide mon site vers la lumière ^^
 
WRInaute occasionnel
Je vote pour la deuxième solution, avec des règles qui seront plutôt du genre
Code:
RewriteCond %{REQUEST_URI} ^/article.php$
RewriteRule ^.*$ %{QUERY_STRING} [C]
RewriteRule go=-([0-9]+) archives-$1.htm [R=301]
pour cause d'URL Rewriting travaillant sur l'URL sans les paramètres.
 
WRInaute discret
qd je parle de page satellite, je voulais parler de 2 pages qui ont le meme contenu mais pas le meme nom (une en php l'autre en html)
 
WRInaute discret
nikoshr :
je ne comprends pas l'interet de ceci :
Code:
RewriteCond %{REQUEST_URI} ^/article.php$ 
RewriteRule ^.*$ %{QUERY_STRING} [C]

est-ce uniquement pour faire plus propre ?
 
WRInaute passionné
Ces pages là sont dans le cache de google, c'est à lui de faire le ménage dans son index.
Etant donné que ces pages là ne sont plus en lien sur le site et sont orphelines, google va les desindexer d'ici quelques semaines.
Il n'y a donc pas de soucis a avoir avec les pages en php
 
WRInaute discret
oki. je vais donc prendre la premiere solution.
merci encore pour vos conseils.
cordialement, guillem.
+
 
WRInaute occasionnel
darksword a dit:
nikoshr :
je ne comprends pas l'interet de ceci :
Code:
RewriteCond %{REQUEST_URI} ^/article.php$ 
RewriteRule ^.*$ %{QUERY_STRING} [C]

est-ce uniquement pour faire plus propre ?

Non, comme je le disais, l'URL Rewriting ne travaille que sur l'URL sans les paramètres : quand tu demandes au serveur /article.php?go=-11, l'URL directement accessible est /article.php (ou article.php dans un .htaccess). La deuxième ligne ne tenant pas compte de l'URL, la condition est là pour que ca ne se déclenche que sur article.php, pas archives-1.htm par exemple. C'est plus clair?
 
WRInaute impliqué
Perso, pour le même problème j'ai utlilisé le robot.txt:
User-agent: *
Disallow: /index.php?param1=valeur1&param2=valeur2
Ce pour toutes les pages que je constate être visitées par les robots. Avec un petit site comme le mien, c'est suffisant.

Loïc.
 
WRInaute discret
désolé jdoi avoir un cerveau-lent :D
j'ai pas tellement compris tes explications, mais ej me suis rendu compte que moi meme j'avais n'imp pour l'exemple que j'avais mis.
Je vais donc prendre un exemple reel, cela sera plus simple !
Code:
RewriteEngine on 

# News
RewriteRule ^news\.html$ /index.php?file=News [L]
RewriteRule ^news-([0-9]+)\.html$ /index.php?file=News&op=index_comment&news_id=$1 [L]
[...]

peux-tu re-expliquer avec ces exemples, en te remerciant :)
 
WRInaute occasionnel
Il était une fois un moteur de recherche (ou un bookmark, ou un lien oublié dans tes pages, ou ...) qui se souvenait que dans des temps très reculés existait une page à laquelle on accédait par -http://www.lesite.com/index.php?file=News&op=index_comment&news_id=11
Or, les temps avaient changé, l'URL Rewriting était passé, la page était désormais connue sous le nom élogieux de -http://www.lesite.com/news-11.html Très fière de cette marque d'estime, elle ne voulait plus que son ancien nom soit utilisé et décida d'indiquer à tous que la vérité était ailleurs.
Elle incanta
Code:
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} file=News
RewriteRule ^.*$ %{QUERY_STRING} [C] 
RewriteRule news_id=([0-9]+) http://www.lesite.com/news-$1.html [R=301]

RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} file=News
RewriteRule ^.*$ http://www.lesite.com/news.html [R=301]

Le but du jeu est de rediriger tous les appels directs de index.php?file=News&news_id=x vers l'URL réécrite (news-x.htm) et tous les autres appels à index.php?file=News vers news.html.

La première ligne vérifie qu'on est bien appelé par index.php.
La deuxième ligne vérifie que le paramètre file contient News, au cas où tu voudrais bricoler d'autres règles du même genre.
La troisième ligne écrit, à la place de la chaîne de caractères actuellement utilisée (l'URL sans les paramètres donc index.php), la chaîne représentant les paramètres (file=News&op=index_comment&news_id=11). C'est ce sur quoi on travaille à partir de là. Le flag [C] indique que cette réécriture ne doit avoir lieu que si la règle suivante est vérifiée.
La quatrième ligne essaie de trouver une correspondance dans la chaîne de travail (file=News&op=index_comment&news_id=11) et redirige si c'est le cas.

Le reste redirige toute requête sur index.php avec un paramètre file=News qui n'a pas été traitée vers news.html

C'est bon cette fois? :)
 
WRInaute impliqué
limpide!
faudrait rajouter une page à WRI si c'est vraiment utile :)
mais... qu'en pensent les habitués de google?
(et on peut pas faire le même genre de chose en renvoyant un entête 404 quand la fin de fichier est ".php" ou un truc dans le genre?)
 
WRInaute discret
oki je pense avoir compris :)
dès que j'aurais mis en application je pousserais un cri d'ours.
OOuuRRSSSS !
 
WRInaute occasionnel
J'aurais tendance à dire que, pour les moteurs comme pour les humains, il est préférable d'être redirigé sur une nouvelle version de la page plutôt que de tomber sur un 404.

Cela dit, tu peux faire un 410 (Gone) , avec le flag [G]
 
Discussions similaires
Haut