web-dev-qa-db-fra.com

Comment empêcher la redirection automatique?

Wordpress possède une fonctionnalité grâce à laquelle il redirige automatiquement vos URL s'il les trouve mal écrites. Voici un exemple: j'ai une page appelée my-page

Si je vais à:

www.mysite.com/something/my-page/

il va immédiatement me rediriger vers

www.mysite.com/my-page/

comme rien n'existe à la première URL.

Comment puis-je désactiver cette fonctionnalité et obtenir à la place un 404 si des URL incorrectes sont saisies?

16
Ash

Cela a fonctionné pour moi:

remove_action('template_redirect', 'redirect_canonical');
22
Ash

Comme suggéré par Ash, vous pouvez désactiver la fonctionnalité en utilisant le code suivant:

remove_action('template_redirect', 'redirect_canonical');

En regardant la fonction redirect_canonical dans canonical.php, il semblerait que vous puissiez également modifier le comportement avec votre propre filtre.

À la fin de la fonction redirect_canonical (), il existe un appel pour filtrer la réponse finale:

$redirect_url = apply_filters( 'redirect_canonical', $redirect_url, $requested_url );

Vous pouvez donc écrire votre propre filtre pour modifier la redirection finale ou renvoyer null pour arrêter la redirection, en fonction de l'entrée, donc désactiver la fonctionnalité d'une URL particulière ou d'un sous-ensemble d'URL.

6
Mike P.