2010-05-28 22 views
0

J'ai un formulaire sur le site Web où les utilisateurs peuvent ajouter de nouvelles pages. Je dois générer des URL conviviales pour le référencement et rendre ces URL uniques. Quels caractères puis-je afficher dans l'URL, je sais que les espaces que je dois convertir pour souligner:Convertir le titre de l'utilisateur (texte) en URL, quoi à la place espaces, #, & et autres caractères?

« « -> » _ » et avant - souligne à quelque chose d'autre, par exemple:

« _ » - >/underscore

Il est facile de renvoyer le titre de l'URL.

Mais dans mon titre spécifique peut être tous les caractères du clavier, même: @ #%: "{/ \ ';.>

sont des contre-indications à ne pas utiliser ce caractères dans l'URL

?

important est:

URL de génération -facile et le titre de l'URL de retour (sans requêtes à la base de données)

titre -Chaque sont uniques, donc URL doit être trop

- URL conviviales

Répondre

1

N'essayez-vous pas d'interroger la base de données pour obtenir le contenu? Dans ce cas, il suffit de saisir le champ de titre dans la même requête. La seule façon de récupérer le titre de façon fiable à partir de l'URL est de l'encoder en URL (en PHP, vous utilisez la fonction urlencode()). Cependant, vous finirez avec des URL comme ceci:

My%20page%20title 

Vous ne pouvez pas remplacer tous les caractères que vous aurez alors pas les URL uniques. Si vous remplacez espaces par des underscores, par exemple, les titres suivants produisent tous la même URL:

My page title 
My_page title 
My_page_title 

En bref: ne vous inquiétez pas un coup de base de données supplémentaire et il suffit d'utiliser les URL de SEO-friendly en limitant à az minuscule, 0-9 et tirets, comme my-page-title. Comme je l'ai dit, vous pouvez tout simplement saisir tout dans une requête.

+0

Oui, mais je peux avoir plus de problèmes avec l'insertion d'enregistrements (nous devons générer une URL unique) et une colonne supplémentaire dans le tableau. Je peux convertir d'abord des décors en par exemple "(.)" Et plus tard des espaces en décors, donc ce n'est pas un problème. – Thomas

+0

Mais le lien sera: http://example.com/page_sdf(.)sdf Donc, ce n'est pas SEO-friendly, je pense. Mais quand je navigue sur les pages wikipedia je peux voir beaucoup de ces liens, par exemple: http: //pl.wikipedia.org/wiki/A* ou http://pl.wikipedia.org/wiki/%22Ad_leones!%22 – Thomas

+0

Et important est que les liens normaux (sans caractères de soulignement et d'autres caractères étranges) seront beaucoup moins sur mon site web. – Thomas