web-dev-qa-db-fra.com

Problème de redirection

Au cours des dernières années, j'ai repris un site Web composé de plusieurs parties: il y avait des pages html traditionnelles, une installation "wiki" php et une installation similaire "informée".

J'ai redessiné le site et converti l'ancienne partie HTML du site en Joomla.

Actuellement, le nouveau site Web de Joomla appelle la fonctionnalité wiki php dans Joomla en utilisant le type de menu "URL".

Cependant, pour moi, cette installation wiki n'est plus nécessaire et souhaite importer toutes les pages wiki dans Joomla. En ce qui concerne le contenu, la tâche n’est pas difficile. Il s’agit d’un simple travail de copier-coller du wiki dans des articles Joomla.

Le problème que j’ai, c’est que les pages du wiki se classent bien dans Google et je dois avant tout veiller à ce que les pages ne perdent pas leur classement lorsque nous échangeons ces pages dans Joomla.

Le wiki lui-même a un plugin de redirection que j'ai configuré, et cela fonctionne, mais Google répertorie toujours les anciennes URL et non les nouvelles.

J'ai essayé de créer des redirections via htaccess dans le dossier racine, mais cela ne fonctionne pas comme je l'espérais.

Voici la redirection que j'ai essayée dans htaccess:

Redirect 301 /phpfolder/doku.php?id=mydocument https://www.mysite.co.uk/new-category/2 ... joomla-doc

Je l'ai testé plusieurs fois et dès que "? Id = mydocument" est entré après le fichier doku.php, le serveur ignore complètement la redirection et sert la page de wiki d'origine et non la nouvelle page Joomla.

Quelqu'un a-t-il une suggestion sur la façon de résoudre ce problème afin d'éviter que les pages du wiki d'origine ne perdent leur classement et que Google reconnaisse les nouvelles pages et désindexe les anciennes pages?

Toute aide, comme toujours, est grandement appréciée.

1
Dunxmax

Les redirections normales ignorent les chaînes de requête. Vous devez définir une condition pour la page et la chaîne de requête:

RewriteCond %{REQUEST_URI} ^/phpfolder/doku.php
RewriteCond %{QUERY_STRING} ^id=mydocument$
RewriteRule (.*) https://www.mysite.co.uk/new-category/whatever/joomla-doc? [R=301,L]

Mettre le? à la fin, la chaîne de requête originale est effacée, sinon elle afficherait https://www.mysite.co.uk/new-category/wther/joomla-doc?id=mydocument

Si vous avez une tonne de requêtes différentes qui vont au même endroit, il est possible d'utiliser regex pour les faire correspondre toutes ensemble.

1
YellowWebMonkey

Vous pouvez regarder dans les outils d’administration de joomla, c’est le meilleur composant de sécurité pour Joomla, mais il possède également une fonctionnalité très pratique pour gérer les redirections. C'est beaucoup plus propre qu'un énorme fichier .htaccess

0
Nick