web-dev-qa-db-fra.com

301 redirection des liens de blogs ne commençant pas par `/ blog` vers le nouvel emplacement du blog

J'avais un site WordPress dans lequel j'ai déplacé des dossiers - http://example.com vers http://example.com/blog.

Le problème maintenant est que beaucoup de sites continuent de créer un lien vers mon ancien blog avec des liens vers /blog-post. Ainsi, lorsque les utilisateurs cliquent dessus, ils obtiennent un 404. Il existe environ 100 liens similaires, mais ils ne suivent pas tous la même structure d'URL. .

Par exemple:

  • /blog-post
  • /postname
  • /2016/01/01/post

Existe-t-il un moyen pour moi de faire en sorte que ces liens les conduisent vers leurs NOUVEAUX emplacements - ce qui ne ferait que présumer /blog/?

3
movecx

Essayez ce qui suit dans votre fichier racine .htaccess (avec mod_rewrite):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /(.*)
RewriteRule !^blog /blog/%1 [R=301,L]

Pour toutes les URL qui ne démarrent pas /blog et n'existent pas en tant que fichiers physiques (dans la racine du document ou ailleurs), 301 sont redirigés vers /blog/<whatever>.

Assurez-vous d'effacer le cache du navigateur si vous avez déjà testé les 301 qui ont échoué.

1
MrWhite