web-dev-qa-db-fra.com

Comment effectuer une requête à l'URL?

Si je veux afficher les messages dans la catégorie voyages, l'URL est

example.com/category/travel

Si je veux afficher les messages en 2007, l'URL est

exemple.com/2007

Si je veux afficher les messages de la catégorie voyages publiés en 2007, l’URL est

example.com/2007/?category_name=travel

Mes questions sont

1- Pourquoi l'URL

example.com/category/travel/?year=2007

retombe à

exemple.com/2007

et question connexe

2- Pourquoi une telle URL (pour afficher toutes les publications de la catégorie voyages publiées avant 2007) ne fonctionne-t-elle pas?

example.com/category/travel/?year<=2007

2
physicopath

La raison derrière ceci est la façon dont la réécriture d'URL fonctionne. Quelle que soit la configuration de votre structure de lien permanent, toutes les demandes seront redirigées vers index.php. Donc, par exemple:

example.com/category/travel

deviendra éventuellement:

example.com/index.php?cat=travel

Donc dans votre exemple:

example.com/category/travel/?year=2007

sera transformé en:

example.com/index.php?cat=travel&year=2007

et peut-être parce que le dernier argument remplace le premier, ce qui précède se transformera en ceci:

example.com/index.php?year=2007

Qui interrogera les publications publiées en 2007.

Pourquoi year<=2007 ne fonctionne pas?

Vous ne pouvez pas transmettre les arguments de comparaison de cette façon. L'argument de requête doit avoir la même valeur, les requêtes telles que year<2000 ne sont pas valides. Vous pouvez le transmettre comme year=<2007, mais il appartient au script de répondre à votre demande. Certains scripts peuvent être programmés pour le reconnaître, d'autres non.

À l'heure actuelle, en envoyant year<=2007, vous indiquez au serveur que la valeur de year< est égale à 2007.

2
Jack Johansson