web-dev-qa-db-fra.com

Htaccess redirige 404 URL vers la page d'index

J'essaie de configurer mon fichier htaccess de sorte que toutes les 404 pages soient redirigées en permanence vers la page home/index à l'aide de 301. Après avoir configuré le fichier htaccess, j'essaie de vérifier qu'il fonctionne correctement en tapant une URL fictive telle que site.com/asdf pour voir si le 404 sera redirigé. Ce n'est pas le cas, il affiche simplement le message de la page non trouvée de WordPress et ne parvient pas à rediriger vers la page d'accueil.

Le code que j'utilise (ci-dessous) semble fonctionner sur le débordement de pile ( lien, 2e réponse ). J'ai même essayé de créer un script PHP à utiliser avec htaccess pour rediriger les 404, mais toujours le même résultat, pas de redirection.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . / [L,R=301]
# END WordPress
5
user38415

Vous pouvez utiliser: ErrorDocument 404 /index.php mais Word d'avertissement ... Les 404 sont parfaitement normaux si la page n'existe plus, pour l'expérience utilisateur, vous ne devriez jamais utiliser une redirection 301 si la page qui n'existe plus va à égalité. page .. c'est-à-dire des voitures aux voitures, des lapins aux lapins.

L'utilisation de dizaines à des centaines de 301 indésirables pour votre public peut entraîner une expérience négative et Google n'aime pas ce comportement. Ne redirigez jamais une page 404 vers une page pertinente, sinon laissez la page 404 ou utilisez la page 410 disparue. Les utilisateurs de 404 pages peuvent facilement naviguer vers d’autres pages s’ils le souhaitent, laissez-leur le choix.

Sauf s'il existe des milliers d'URL similaires, vous devez utiliser la redirection 301 plutôt que la réécriture, utilisez simplement:

redirect 301 /old-url/ http://www.yourdomain.com/new-url/

2
Simon Hayter

Tout ce que vous avez à faire est d’ouvrir votre fichier 404.php dans le dossier de votre thème. S'il n'existe pas, créez un fichier php vierge. Collez le code suivant ici:

<?php 
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".get_bloginfo('url'));
exit();
?>
2