2010-01-07 5 views
0

J'ai trouvé ce article regarding URL Rewriting le plus utile. Mais voici quelques questions.Réécriture d'URL, SEO et encodage

J'aimerais utiliser une URL (avant la réécriture, avec des espaces à l'intérieur de la chaîne de requête)

http://www.store.com/products.aspx?category=CD s-Dvd s 

D'abord, dois-je remplacer les espaces avec le signe plus (+) pour une raison quelconque? Comme ceci:

http://www.store.com/products.aspx?category=CD+s-Dvd+s 

Deuxièmement, ma langue maternelle est le grec. Dois-je encoder les paramètres? D'une manière générale, le résultat avec le codage d'URL serait-il différent, en ce qui concerne S.E.O.?

Répondre

0

Si la valeur doit passer par inchangée, alors oui, vous devez utiliser échapper. Dans une valeur de paramètre de requête URL, un espace peut être codé comme + ou %20. mod_rewrite le fera généralement pour vous aussi longtemps que la version externe a été correctement orthographiée.

Dans la version externe de l'URL,% seulement 20 peuvent être utilisés:

http://www.store.com/products/CD%20s-Dvd%20s 
http://www.store.com/products.php?category=CD%20s-Dvd%20s 

parce qu'un + dans une partie de chemin d'URL serait littéralement signifie un plus.

(Etes-vous sûr que vous voulez un espace là-bas? « CD-DVD » sans les espaces semble être un meilleur titre.)

Il est non trivial pour obtenir des chaînes arbitraires par le biais d'une partie de chemin de un paramètre. En dehors des problèmes d'échappement, vous avez des problèmes avec /, qui devrait être codé comme %2F dans une partie de chemin. Cependant, Apache bloquera par défaut toute URL contenant %2F pour des raisons de sécurité. (\ est également affecté sous Windows.) Vous pouvez désactiver ce comportement en utilisant la configuration AllowEncodedSlashes, mais cela signifie que si vous voulez être portable, vous ne pouvez pas utiliser "CD/DVD" comme nom de catégorie. Pour cette raison, et parce que la charge de %20 s dans votre URL est un peu moche, les chaînes sont généralement transformées en 'slugs' avant d'être placées dans une URL, où tous les caractères ASCII litigieux qui résulteraient en % -escapes visibles sont remplacées par des caractères de remplissage tels que trait d'union ou trait de soulignement. Cela signifie que vous ne pouvez pas inverser la chaîne, vous devez donc stocker un titre et un slug dans la base de données pour pouvoir rechercher la bonne entité pour un slug donné, ou simplement utiliser un ID supplémentaire dans l'URL (comme Stack Overflow fait).

0

pratique générale est de remplacer les espaces par des underscores, ala http://www.store.com/products.aspx?category=CD_s-Dvd_s

1

En fait, vous devez remplacer les espaces par des traits d'union. C'est en fait mieux pour le référencement que d'utiliser un trait de soulignement.

+0

Et comment le savons-nous? –