web-dev-qa-db-fra.com

Comment rediriger une URL avec un sous-dossier vers la même URL mais sans sous-dossier?

J'ai un site WordPress à example.com/blog. Maintenant, je veux supprimer le sous-répertoire /blog et ne garder que example.com.

Cependant, d'autres sites qui font référence à mon site pointent toujours sur example.com/blog. Comment puis-je rediriger tout le trafic, y compris les publications et les pages, allant de example.com/blog à example.com?

1
TSR

En supposant que vous ayez déjà déplacé votre site du sous-répertoire /blog vers la racine du document et modifié la structure de l'URL dans WordPress lui-même, le sous-répertoire /blog n'est pas inclus dans tous vos liens internes. Vous pouvez ensuite effectuer une redirection simple (à l'aide de mod_rewrite) dans le fichier /blog/.htaccess (préférable):

RewriteEngine On
RewriteRule (.*) /$1 [R=302,L]

Cela redirigera une URL de la forme /blog/foo vers /foo, car la référence arrière capturée ($1) ne contient pas le préfixe de répertoire utilisé dans un contexte répertoire.

Sinon, si vous souhaitez supprimer le sous-répertoire /blog, vous pouvez procéder comme suit en haut du fichier racine .htaccess, avant le contrôleur frontal WordPress:

RewriteRule ^blog/(.*) /$1 [R=302,L]

Notez qu'il s'agit actuellement de 302 redirections temporaires. Ne modifiez les redirections permanentes 301 que lorsque vous êtes certain qu'elles fonctionnent correctement.

1
MrWhite