Mise à jour: le problème Drupal # 1796596 a été validé à partir de la redirection 1.0-rc2 (juin 2015). La solution correcte à ce problème consiste maintenant à mettre à niveau vers la dernière version stable du module de redirection, puis à exécuter les mises à jour de la base de données. Toutes les redirections circulaires que vous avez seront nettoyées en toute sécurité.
Ce problème est dû à un bogue dans le module de redirection. Vous le déclenchez en changeant l'URL d'une page (ou peut-être simplement son titre, si vous utilisez pathauto), puis en la remettant à ce qu'elle était.
Par exemple, supposons que j'avais une page intitulée "entreprise" et que j'ai changé le titre en "Notre entreprise" (qui a changé l'alias d'URL en notre-entreprise). Ensuite, j'ai décidé que je préférais vraiment la première façon, donc je modifie à nouveau le nœud et change le titre en "Société". À ce stade, le message d'erreur " Oups, on dirait que cette demande a essayé de créer une boucle infinie. Nous n'autorisons pas de telles choses ici. Nous sommes un site Web professionnel! " Commencerait à apparaître sur la page Entreprise.
Il existe trois façons de résoudre ce problème, selon ce qui est le plus simple pour vous. Ils varient en difficulté / bravoure de haut en bas.
La méthode Drupal / PHP
Il y a un long bug Drupal sur le sujet: problème # 1796596 et il y a un bon correctif qui résout le problème dans le commentaire # 124 .
Espérons que ce correctif sera bientôt enregistré dans le module de redirection pour téléchargement. Cependant, cela fait plus d'un an maintenant sans aucun signe de progrès sur ce front.
La méthode SQL
La solution la plus rapide pour le problème est une requête SQL vers la base de données, avec quelque chose comme ci-dessous. Faites attention et n'essayez cette méthode que si vous savez ce que vous faites - essayez-la d'abord sur une copie de développement du site et assurez-vous d'avoir une sauvegarde et de tester les modifications juste après au cas où vous auriez besoin de revenir en arrière. Soyez très prudent et testez très bien la première requête si vous utilisez i18n ... Exécutez la première requête pour afficher ce qui serait supprimé et la seconde pour réellement supprimer.
--Show records to be deleted:
SELECT r.rid, r.language, r.source, r.redirect
FROM redirect r INNER JOIN url_alias u ON r.source = u.alias
AND r.redirect = u.source AND r.language = u.language;
--Delete redirects shown in above query:
DELETE r FROM redirect r INNER JOIN url_alias u ON r.source = u.alias
AND r.redirect = u.source AND r.language = u.language;
Si vous ne savez pas comment appliquer des correctifs ou exécuter des requêtes SQL, vous devez résoudre le problème manuellement. Ne vous inquiétez pas, cela est en fait assez facile à faire (mais prend du temps par rapport aux autres méthodes):
La méthode manuelle:
Pour chacune des pages où le message d'avertissement s'affiche:
- Modifier la page
- Faites défiler vers le bas du formulaire d'édition
- Notez l'URL principale de la page. Il est affiché sous "Paramètres du chemin URL", par exemple "Alias: entreprise" signifierait que l'URL de la page est "entreprise". Vous pouvez cliquer sur "Paramètres de chemin URL" pour visiter sa section et confirmer l'alias d'URL si vous n'êtes pas sûr.
- Cliquez maintenant sur "URL de redirection". Les redirections vers la page actuelle seront affichées. Il y aura au moins une redirection identique à l'alias d'URL que vous avez noté à l'étape 3. Il est possible que plusieurs redirections dans cette liste correspondent à l'alias d'URL.
- Supprimez toutes les redirections identiques à l'alias d'URL. Ce sont les données du problème qui provoquent la boucle et le message d'erreur à afficher.
- Une fois qu'il n'y a plus de redirections sous "URL de redirection" qui correspondent exactement à l'alias d'URL de la page à problème sous les paramètres de chemin d'URL, le message d'erreur disparaîtra.