2010-07-10 22 views
0

Notre systèmeProposer le meilleur style URL

Notre module de recherche peut avoir de nombreux paramètres comme

  • recherche par mot clé
  • filtre d'examen
  • sujet filtre
  • Date plage filtre
  • filtre de nom de cours ... ... etc

et il y a des paramètres paginations et de tri comme

  • Numéro Page
  • Nombre de résultats dans une page
  • champ de tri
  • ordre de tri

Nous avions des URLs comme: -

www.projectname/module/search/<search keyword>/<examination filter>/<subject filter>/ 
www.projectname/module/search/<search keyword>/<examination filter>/<subject filter>/<Page number>,<Number of results in a page>,<sort field>,<sort order> 

.... ... ...

Et nous avions une règle de réécriture dans htaccess pour chaque variation.

actuel Problème

En raison de la difficulté de plusieurs URL causant des problèmes dans la maintenance du code, je suis maintenant recours à des fonctions PHP pour faire la tâche au lieu de htaccess, quelque chose de similaire aux bibliothèques d'URL de cadres tels que Zend , Codeignitor.

Ma question

Je veux juste quelques suggestions sur lesquelles des conventions de format d'URL suivant est préférable de suivre compte tenu du fait que tous les filtres de recherche/Parmas ne seront pas nécessaires à chaque fois. Alors, lequel des 2 conventions suivantes sont mieux suivre: -

  1. Avoir tous les paramètres d'URL présents dans toutes les URL, peu importe si elles sont nécessaires ou non, comme: -

    www.projectname /module/search/hello//110/ ... tous les autres paramètres présents ...

    Ici, nous n'avons pas besoin de mentionner que le param qui est le mot-clé de recherche et celui qui est sujet filtre. Une simple fonction d'analyseur d'URL suppose toujours le 2ème paramètre de www.projectname/module/en tant que mot-clé de recherche (bonjour dans ce cas) et de même pour les autres paramètres. Dans cet exemple, le filtre d'examen n'est pas applicable et il est donc laissé vide et il ne casse pas l'URL, mais c'est sympa.S'il y avait beaucoup params vides alors il y apparaître plusieurs dos à dos barres obliques

  2. Permettre la liberté de passer params URL dans un ordre comme celui-ci: -

    www.projectname/module/recherche/SEARCH_KEYWORD/bonjour/subject_filter /110/...autres paramètres nécessaires uniquement présents ... www.projectname/module/search/subject_filter/110/search_keyword/hello/... autres paramètres requis uniquement présents ...

    Ces deux URL signifie la même chose Dans cette convention, la fonction d'analyseur d'URL analyse chaque paire nom-valeur et prend la valeur à côté du nom "search_keyword" comme mot-clé de recherche et similaire. y pour les autres (dans cet exemple name = search_keyword, value = hello). La fonction analysera chaque paire de valeurs de chaque nom et ainsi le terme search_keyword apparaissant comme valeur pour une autre paire n'interférera pas.

S'il vous plaît prendre en compte les facteurs suivants tout en suggérant: - - convivialité SEO - facilité de maintenabilité (en tenant compte de nouveaux filtres peuvent être ajoutés à l'avenir)

S'il vous plaît donner quelques conseils sur l'amélioration de la convivialité SEO. J'ai peu de connaissances sur ce

Merci

Répondre

0

J'ai choisi moi-même la meilleure solution. Je pense que la 2ème convention, c'est-à-dire Allowing freedom to pass URL params in any order est meilleure seulement parce que la 1ère convention peut entraîner des barres obliques inverses si un ou plusieurs paramètres ne doivent pas être passés dans certains cas. Pour en savoir plus sur les raisons pour lesquelles nous devons éviter les barres obliques inutiles, vérifiez Why we don’t use such URL formats?

0

Dans Zend Framework, l'objet Request permet de transmettre des données dans un ordre quelconque et éventuellement utiliser aide Voir routeur ou URL pour créer l'URL de la page dans la façon dont vous le souhaitez au moment .

C'est le meilleur modèle que je connaisse. Aucune règle .htaccess du tout.