Mon site Web principal sur un réseau multisite a été créé avec le préfixe www
(comme www.example.com
).
Si j'essaie d'accéder à des pages sans le préfixe www
(comme example.com/page-name/
au lieu de www.example.com/page-name/
, je suis redirigé vers la page d'accueil (www.example.com
). Je souhaite le modifier afin que je sois redirigé vers la même URL de page, uniquement avec le préfixe www
. .
En outre, la page d'erreur 404 ne fonctionne pas sur le site principal. Quelle que soit l'URL non existante que j'essaie (telle que www.example.com/thisdoesnotexist
), je suis toujours redirigé vers la page d'accueil du site principal (www.example.com
), plutôt que de voir la page 404 du thème.
Voici un lien vers mon site où vous pouvez tester le problème.
Il existe actuellement un bogue dans la fonctionnalité qui gère la constante NOBLOGREDIRECT
, ce qui fait que 404 erreurs sur le site principal sont redirigées vers la valeur de la constante. Apparemment, il s’agit du comportement attendu pour les réseaux de sous-répertoires (example.com/subsite
), mais ne devrait pas avoir lieu sur les réseaux de sous-domaines (subsite.example.com
).
Il existe un ticket WordPress Trac (# 21573) concernant ce bogue, mais rien n’indique quand il pourrait être résolu. Jusque-là, vous pouvez résoudre cette erreur vous-même en supprimant la fonction maybe_redirect_404
:
remove_action( 'template_redirect', 'maybe_redirect_404' );
Ce code devrait aller dans un fichier .php
dans le répertoire wp-content/mu-plugins
. N'oubliez pas d'inclure une balise <?php
au début du fichier.
vérifiez votre .htaccess
pour
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
ce sont les paramètres htaccesss de base qu'une installation wordpress crée lors de l'installation. Numéro de ligne 3 est important.