Forum: Rails France plugin pour SEO friendly URLs

Posted by Alexis Perrier (Guest)
on 2010-01-16 17:38
(Received via mailing list)
Bonjour
Je cherche un plugin pour que les urls soient SEO compatible
exemple pour un article intitulé "bonjour paris"
/post/5
devient
/post/bonjour-paris

Il y a bien les plugins suivantque j'ai utilisé il y a longtemps
acts_as_friendly_param
permalink_fu

 je me demandai s'il existait quelque chose de plus récent.

Je pourrais développer le truc moi meme mais j'ai ... la flemme
merci de vos reponses
Alexis
Posted by Sébastien Gruhier (Guest)
on 2010-01-16 17:44
(Received via mailing list)
http://github.com/tkadom/friendly_id est parfait
En plus il est très configurable

Seb


Sébastien Gruhier

-----------------------------------------------------------------------
http://xilinus.com       Web Application Development, Consulting, 
Training
http://maptimize.com     Markers fusion service for your online maps
http://mocksmtpapp.com   Smart and simple e-mail testing for new apps
                         and websites on Mac OS X
Posted by Bruno Michel (Guest)
on 2010-01-16 18:07
(Received via mailing list)
Sébastien Gruhier wrote:
> http://github.com/tkadom/friendly_id est parfait
> En plus il est très configurable
> 
> Seb

Pour ma part, je recommande http://github.com/norman/friendly_id. Chose
marrante, ce plugin porte le même nom que celui proposé par Sébastien,
et j'aurais utilisé les mêmes termes pour décrire celui que je propose
(parfait et très configurable). Pourtant, il semblerait que ce soit deux
plugins différents.

Histoire de faire pencher la balance, je dirais juste que
http://github.com/norman/friendly_id a l'air mieux maintenu que
http://github.com/tkadom/friendly_id.

++
Bruno
Posted by Sébastien Gruhier (Guest)
on 2010-01-16 18:09
(Received via mailing list)
oui autant pour moi :)
Posted by Alexis Bernard (Guest)
on 2010-01-17 09:35
(Received via mailing list)
Je n'utilise pas de plugin pour une fonctionnalité qui tient en 3 
lignes.

class Post < AR::Base
  def to_param
    "#{id}-#{title.parameterize}"
  end
end

Et c'est tout aucune autre modification de code à faire.

Le 16 janvier 2010 18:08, Sébastien Gruhier <sgruhier@gmail.com> a écrit 
:
Posted by Alexis Perrier (Guest)
on 2010-01-17 11:49
(Received via mailing list)
Super, merci pour les friendly_id, je vais regarder
suis d'accord avec Alexis, ça tient en quelques lignes et un plugin
est un peu overkill

En fait il faut simplement
- une regex qui transforme le titre en permalink
- le permalink dans la base
- l'unicité du permalink
- et le to_param pour (suis pas familier avec to_param, je vais
regarder)

Merci en tout cas
Alexis
Posted by Emilien Taque (Guest)
on 2010-01-17 11:56
(Received via mailing list)
Avec la solution d'Alexis, l'unicité du permalink n'est pas
indispensable, vu que l'identifiant est toujours présent :
/posts/12-my-post-title

Ceci fonctionne car "12-my-post-title".to_i == 12

Ce qui semble important niveau SEO, c'est de rediriger si le permalink
n'est pas le bon (par exemple si le titre du post a été modifié). Il
faut alors faire :

redirect_to @post, :status => 301 if @post.to_param != params[:id]

--
Emilien
http://emilientaque.fr

2010/1/17 Alexis Perrier <alexis.perrier@gmail.com>:
Posted by Fabien Jakimowicz (Guest)
on 2010-01-17 22:01
(Received via mailing list)
2010/1/17 Emilien Taque <etaque@gmail.com>:
> redirect_to @post, :status => 301 if @post.to_param != params[:id]
>

Cela dépend : si le titre contient une toute nouvelle chose blindée
d'insultes en tout genre et que ce lien est posté un peu partout sur
des forums, cela crée une très mauvaise image. Je préfère afficher un
404 dans ce cas là et rediriger vers la page avec le title dans l'url
si il à été omis.
Posted by Emilien Taque (Guest)
on 2010-01-17 22:12
(Received via mailing list)
Si on veut avoir plus de contrôle sur le permalink, on peut avoir un
champ dédié dans le modèle, initialisé à la création et utilisé dans
le to_param :

before_create do |post|
  post.permalink = post.title.parameterize
end

def to_param
  "#{id}-#{permalink}"
end

--
Emilien
http://emilientaque.fr

2010/1/17 Fabien Jakimowicz <fabien@jakimowicz.com>:
Posted by Fabien Jakimowicz (Guest)
on 2010-01-17 22:16
(Received via mailing list)
2010/1/17 Emilien Taque <etaque@gmail.com>:
> end
>

Je parlais surtout au moment de récupérer la resource associée à l'id
/ title. Ne pas tester ou toujours rediriger sur la 'bonne' page en
cas d'erreur peut amener à des surprises ;)
Posted by Emilien Taque (Guest)
on 2010-01-17 22:45
(Received via mailing list)
D'où le contrôle sur la "bonne" page via le champ permalink, tu ferais
comment sinon ?

2010/1/17 Fabien Jakimowicz <fabien@jakimowicz.com>:
Posted by Alexis Perrier (Guest)
on 2010-01-18 09:46
(Received via mailing list)
Est ce que simplement catcher l'exception si le post n'a pas a été
trouvé
et rediriger vers l'index ne suffit pas ?
d'un point de vue SEO ?
Alexip
Posted by ook? ook! (Guest)
on 2010-01-18 15:35
(Received via mailing list)
Tu casses le workflow http en empêchant de remonter une 404. Ca peut se
discuter, mais de mon point de vue, ce n'est pas souhaitable.
Ensuite, on peut en effet imaginer un simple avertissement 
(flash[:warning])
avec redirection sur la catégorie parente la plus proche sémantiquement
parlant.

2010/1/18 Alexis Perrier <alexis.perrier@gmail.com>
Posted by de Villamil Frédéric (Guest)
on 2010-01-18 16:39
(Received via mailing list)
Bonjour,

Puisqu'il s'agit de SEO... J'avais discuté du problème avec un 
référenceur lors d'un projet précédent. Sa préconisation était de 
rediriger systématiquement les 404 sur la home, avec un code de retour 
301, afin de passer le jus des pages disparues (quand anciennes pages) à 
la home.

Bonne soirée
Fred

Le 18 janv. 2010 à 15:34, ook? ook! a écrit :
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.