2010-09-27 18 views
1

J'ai une section de nouvelles où les pages résolvent à urls commedynamique titre seo pour les articles de presse

newsArticle.php? Id = 210

Ce que je voudrais faire est d'utiliser le titre de la base de données créer des titres seo amis comme

newsArticle/joe-va à la ville

Toute idée comment je peux y parvenir?

Merci,

R.

+1

Quel type de serveur web utilisez-vous? Utilisez-vous des scripts de système ou de serveur CMS? – Guffa

+0

Le site est-il construit en HTML/PHP ou utilisez-vous Joomla/Wordpress? Pouvez-vous coder en PHP ou cherchez-vous une solution de plugin? –

Répondre

6

je vous suggère d'inclure réellement l'ID dans l'URL, avant la partie de titre, et ignorent le titre lui-même lors de l'acheminement. Votre URL peut donc devenir

/news/210/joe-goes-to-town 

C'est exactement ce que fait Stack Overflow, et cela fonctionne bien. Cela signifie que le titre peut changer sans rupture de liens.

Il est évident que les détails exacts dépendront de ce que la plate-forme que vous utilisez - vous n'avez pas spécifié - mais les étapes de base sont les suivants:

  • Lors de la génération d'un lien, prendre le titre de l'article et le convertir en quelque chose d'URL-friendly; vous devez probablement supprimer toute ponctuation, et vous devriez considérer les caractères accentués, etc. Gardez à l'esprit que le titre n'aura pas besoin d'être unique, car vous avez également l'ID
  • Lors de la gestion d'une requête commençant par/news, prenez la partie suivante du chemin, analysez-la en entier et chargez l'article approprié.
+1

Un avantage supplémentaire est qu'il rend la récupération plus facile et plus rapide - il vous suffit d'utiliser un ID numérique au lieu d'une chaîne potentiellement longue. – Archimedix

+0

c'est toute bonne information. La plate-forme dans Linux exécutant php. Tout lien vers où commencer serait une aide précieuse. – Roscoeh

+0

@Roscoeh: J'ai peur de ne pas en savoir assez sur PHP pour donner des conseils détaillés sur ce sujet. Produire l'URL devrait être raisonnablement simple, mais je ne sais pas comment le routage fonctionne en PHP. –

0

En supposant que vous utilisez PHP et peut modifier votre code source (ce qui est tout à fait obligatoire pour obtenir le titre de l'article), je fais ce qui suit:

D'abord, vous aurez besoin d'avoir une fonction (ou peut-être une méthode dans une architecture orientée objet) pour générer les URL pour vous dans votre code. Vous fournissez la fonction avec l'objet article ou l'ID article et il renvoie l'URL amicale avec l'ID et le titre amical. Fondamentalement function url(Article $article) => URL.

Vous aurez également besoin de règles de réécriture d'URL pour supprimer le script PHP de l'URL. Pour Apache, se référer au the mod_rewrite documentation pour les détails (RewriteEngine, RewriteRule, RewriteCond).