web-dev-qa-db-fra.com

Quel est le moyen le plus rapide / le moins cher d’obtenir la réécriture d’URL?

Relatif à autre question - Si vous avez besoin que la réécriture d'URL soit implémentée dès que possible, quelles méthodes utilisez-vous ou connaissez-vous pour accélérer le processus?

2
Mark Henderson

Nous avons réussi à fabriquer plusieurs centaines de produits en moins de 8 heures. Voici notre scénario:

Nous avons eu:

  • Chien URL moche qui ont été remplis avec des paramètres sans signification
  • Développeurs internes
  • Accès complet à la base de données SQL et au schéma
  • IIS6/ ISAPI Rewrite (mais nous aurions pu le faire pour d'autres)

Option 1

Notre table de produits ressemblait à ceci:

ID | Product Name | Description | etc
-------------------------------------
001|Product 1     | This is...  | etc
002|Product 1     | This is...  | etc
003|Product 1     | This is...  | etc

Nous avons donc écrit un petit programme batch qui parcourt notre table products et crée des entrées dans notre fichier httpd.ini (la version de ISAPI Rewrite de .htaccess), de sorte que nous avons obtenu un fichier avec des centaines d'entrées comme celle-ci:

RewriteRule (/product-1/) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N001 [I,O,U] * S'il vous plaît voir disclaimer

Nos produits ne changent pas très souvent, aussi nous ré-exécutons cela manuellement chaque fois que nous ajoutons quelque chose. Pas élégant, mais il s’agit de le faire rapidement/à bon marché.

Ensuite, partout où nos liens étaient imprimés vers des produits, nous nous sommes assurés que les liens étaient générés vers leur URL complète.

Cela a pris environ 8 heures au total.

Option 2

Une règle de réécriture d'URL générique unique qui ressemble à ceci:

RewriteRule (/products/)(.*/)(.*) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N$3 [I,O,U] * S'il vous plaît voir disclaimer

Cela signifiait que nous pourrions écrire:

/products/my/thing/whatever/the/hell/i/want/123

Et ce serait réécrire à la bonne URL. Ensuite, il suffit de changer la sortie de vos liens URL.

* DISCLAIMER: Mes compétences en regex sont très rouillées et je les ai inventées sur-le-champ. Ils peuvent avoir tort. Votre kilométrage sur les regex réels peut varier, mais le concept est toujours valable.

2
Mark Henderson