web-dev-qa-db-fra.com

add_rewrite_rule se comporter étrangement

Je personnalise un autre plugin en modifiant la règle de réécriture, à partir de:

    add_rewrite_rule('^api/auth/([0-9]+)?/?','index.php?__api=1&uid=$matches[1]','top');

à:

    add_rewrite_rule('^api/auth/','index.php?__api=1','top');

Après avoir effectué la modification (et sans oublier d'actualiser les permaliens ), mon noeud final ne fonctionne pas. Quand j'essaye quelque chose comme:

file_get_contents("http://mydomain.com/api/auth/")

... au lieu de l'objet json qui devrait être renvoyé, j'obtiens le formulaire de connexion de l'utilisateur. enter image description here

Ce qui est encore plus étrange, c'est que lorsque j'ajoute un entier à la fin, comme ceci:

file_get_contents("http://mydomain.com/api/auth/3")

... Je reçois l'objet json que j'attends! Que se passe t-il ici?

1
emersonthis

J'ai donc résolu ce problème, mais je me bouscule toujours sur la "solution":

add_rewrite_rule('api/autho/?$','index.php?__api=1','top');

Cette version de la règle de réécriture fonctionne pour une raison quelconque. Je devine qu'il y a une sorte de conflit d'espaces de noms que je suis tombé par hasard sur. Peut-être que /auth/ est utilisé ailleurs?

0
emersonthis