Redirection de 300 000 URL

Nouveau WRInaute
Bonjour,

Après la migration d'un site, je dois faire la redirection des anciennes URL vers le contenu correspondant sur le nouveau site.

Pour cela, j'ai fait un script en PHP qui me génère les nouvelles URL et les mets dans un fichier .htaccess avec des Redirect permanent.

Cela fonctionne pour mes test avec une vingtaine d'URL. Mais une fois que le .htaccess (de 300 000 lignes :D) est en place, j'obtiens une erreur 500.

Y-a-t'il une meilleur façon de procéder pour procéder à des redirections massives ?

Les fichiers .htaccess sont-ils limités en taille ? (le mien fait 36Mo)

Merci
 
WRInaute accro
S'il y a une logique entre les anciennes et les nouvelles, il vaudrait mieux une règle d'écriture rewrite rule, ça prend trois lignes
Sinon on peut tout rediriger vers le nouveau, et aiguiller là-bas
300 000 lignes ça me semble énorme, ça fait énormément de travail pour le serveur à chaque consultation. Je ne sais pas s'il y a une limite officielle par contre
 
WRInaute accro
Tant qu'a faire un script PHP, pourquoi ne pas provoquer la redirection en mysql/PHP ?


Quelquechose comme ça :
Tu récupères l'URL appelée,
Tu regardes si elle est dans ta base de données d'URL à rediriger
si oui, header() en 301 vers l'URL a rediriger
 
Nouveau WRInaute
Merci pour vos réponse, je voulais seulement connaitre les limitations du .htaccess, mais de toute façon les performances pourrait être dégrade.

Je vais utiliser la base de données pour stocker mes URL et chercher à faire une redirection en PHP en cas d'erreur 404.

Merci
 
WRInaute occasionnel
Dis toi une chose quand il s'agit du htaccess :
il est appelé pour chaque ressource.

Une page est appelée : le htaccess est appelé
Cette page appelle 2 feuilles CSS : le htaccess sera appelé 2 fois de plus
Elle appelle un ou X fichiers JS : le htaccess sera appelé 1 ou X fois
Elle appelle 5 images : le htaccess sera appelé 5 fois....
etc, etc.

Imagine, un fichier htaccess est une extension de la configuration initiale du serveur. Il est censé contenir quelques exceptions de configurations (imaginons une 30 aine de ligne en moyenne, souvent bien moins)
mais là, 300 000 lignes, tu fais péter ton serveur s'il retourne lire le fichier à chaque appel. (et encore mon exemple était très succinct)

Un bon Htaccess est un htaccess comportant le moins de lignes possibles, si tu peux alléger en faisant des conditions génériques, c'est le mieux, si tu peux gérer le problème dans le code PHP, ce n'est que mieux
 
Discussions similaires
Haut