J'ai cet ancien lien http://www.example.com/?page_id=617/
que je veux rediriger vers la page d'accueil. J'ai essayé d'implémenter cette redirection avec:
Redirect 301 /?page_id=617/ https://www.example.com/
Après avoir appliqué ce changement, rien ne s'est passé. L'ancienne URL ne redirige pas.
Vous ne pouvez pas faire correspondre la chaîne de requête avec un mod_alias Redirect
. Vous devez plutôt utiliser une directive mod_rewrite RewriteRule
. Et comparez-les avec la variable de serveur QUERY_STRING
dans une directive RewriteCond
.
Essayez plutôt ce qui suit, en haut du fichier .htaccess
:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^page_id=617/$
RewriteRule ^$ https://www.example.com/? [R=302,L]
Notez que cela correspond à la chaîne de requête exacte?page_id=617/
. Modifiez le motif en ^page_id=617
pour qu'il corresponde à une chaîne de requête qui simplement démarre?page_id=617
.
Ne changez le 302 au 301 que si vous êtes certain que tout fonctionne correctement. (Pour éviter que des redirections erronées ne soient mises en cache par le navigateur.)
Le ?
à la fin de la RewriteRule
substitution est requis pour supprimer la chaîne de requête de la demande (sinon, elle est transmise à l'URL cible). Sur Apache 2.4+, vous pouvez utiliser le drapeau QSD
à la place.