web-dev-qa-db-fra.com

301 redirection avec Apache: tous les chemins d'URL vers un seul chemin

Je migre un site Web d'une plate-forme à une autre et, dans ce processus, je supprime l'ancien nom de domaine. Il n'y a pas de relation directe entre le chemin s de l'ancien et du nouveau site Web et, par conséquent, je souhaite rediriger tous les anciens chemins vers la page d'accueil des nouveaux sites Web: I.e. olddomain.example/any_path doit être redirigé vers la page d'accueil de newdomain.example . Je suis conscient des conséquences SEO de cela.

Ma solution actuelle consiste à utiliser la directive RedirectPermanent , afin que mon .htaccess dans le répertoire racine du domaine contienne:

RedirectPermanent / https://newdomain.example/

Comment puis-je obtenir que tout chemin sur olddomain.example (par exemple olddomain.example/any_path ) est redirigé vers la page d'accueil (et non le chemin correspondant) de newdomain.example ?

1
Kristian

Je pense que cela devrait faire l'affaire pour vous. Sur l'ancien domaine, placez ce code dans le fichier .htaccess (ceci suppose qu'une redirection 301 est utilisée).

RewriteEngine On
RewriteRule (.*) https://newdomain.example [R=301,L]
2
Matthew Edgar

Ma solution actuelle consiste à utiliser la directive RedirectPermanent

La directive RedirectPermanent (mod_alias) est préfixe correspondant. Ainsi, comme vous l'avez trouvé, vous serez redirigé vers le "chemin correspondant" du nouveau domaine.

Cependant, la directive complémentaire mod_alias RedirectMatch correspond à l'aide d'une expression régulière et vous permettra de rediriger toutes les URL vers l'URL racine unique.

RedirectMatch 301 / https://newdomain.example/

Ceci est légèrement préférable à l'utilisation de mod_rewrite (RewriteRule), sauf si vous utilisez déjà mod_rewrite pour d'autres redirections.

1
MrWhite