Est-il possible de forcer la redirection de l'ensemble avec un préfixe de paramètres régionaux et un code d'état 301 au lieu d'un 302? Ce serait génial pour le référencement.Redémarrage Symfony JMSI18nRoutingBundle avec 301
0
A
Répondre
0
Pic rapide au niveau du code: oui. La redirection permanente se produit à l'intérieur du I18nRouter (et le contrôleur de redirection qui est appelé là-bas)
https://github.com/schmittjoh/JMSI18nRoutingBundle/blob/master/Router/I18nRouter.php#L258
Vous pouvez remplacer la I18nRouter (méthode le match() doit être le bit correspondant) et changer $permanent
-false
Pour plus d'informations sur le remplacement dans Symfony, vérifiez https://symfony.com/doc/current/bundles/override.html
Merci pour votre réponse rapide. Je pourrais faire cela mais alors je dois copier le code de cette méthode très longue et ce n'est pas enregistrer pour des mises à jour (parce que c'est une méthode privée dans le I18Router.php). Y a-t-il un autre moyen facile et économique de le faire? – Mojo
@Mojo Remplacez redirectAction dans le contrôleur et étendez-le (par exemple, comme si vous écrasiez les contrôleurs dans le FOSUserBundle), mais changez le permanent $ avant de faire le parent :: redirectAction() – Koalabaerchen
C'est une bonne idée. Mais je n'arrive pas à faire fonctionner l'Override. J'ai créé un nouvel ensemble qui implémente la fonction suivante: 'public function getParent() {return 'JMSI18nRoutingBundle'; } ' Ensuite, j'ai créé un contrôleur qui étend le RedirectController de l'ensemble et inséré le' redirectAction() 'pour le remplacer. Là, je change le '$ permanent' et j'appelle' return parent :: redirectAction() 'avec la variable ne mais rien ne se passe. J'ai également inséré un 'die()' pour le tester mais le site fonctionne comme toujours. – Mojo