desenv-web-rp.com

Qual é a maneira mais rápida / barata de implementar a reescrita de URL?

Relacionado a outra pergunta - se você precisar implementar a reescrita de URL o mais rápido possível, quais são os métodos que você já conhece ou conhece que podem acelerar isso?

2
Mark Henderson

Conseguimos fazer várias centenas de produtos em menos de 8 horas. Aqui estava o nosso cenário:

Nós tínhamos:

  • Persiga URLs feias que foram preenchidas com parâmetros sem sentido
  • Desenvolvedores internos
  • Acesso total ao banco de dados e esquema SQL
  • IIS6/ ISAPI Rewrite (mas poderíamos ter feito isso para outras pessoas)

Opção 1

Nossa tabela de produtos ficou assim:

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

Por isso, escrevemos um pequeno programa em lote que percorreria nossa tabela products e criaria entradas em nosso arquivo httpd.ini (versão do ISAPI Rewrite de .htaccess), para que acabássemos com um arquivo com centenas de entradas como esta:

RewriteRule (/product-1/) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N001 [I,O,U] * Consulte o aviso de isenção

Nossos produtos não mudam com muita frequência; portanto, apenas executamos isso manualmente cada vez que adicionamos algo. Não é elegante, mas trata-se de fazê-lo rápido/barato.

Então, em todos os lugares em que nossos links foram impressos em produtos, garantimos que os links fossem enviados para o URL completo.

Isso levou cerca de 8 horas no total.

Opção 2

Uma única regra de regravação de URL genérica que se parece com isso:

RewriteRule (/products/)(.*/)(.*) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N$3 [I,O,U] * Consulte o aviso de isenção

Isso significava que poderíamos escrever:

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

E reescreveria para o URL correto. Depois, basta alterar a saída dos seus links de URL.

* ISENÇÃO DE RESPONSABILIDADE: Minhas habilidades em expressões regulares estão muito enferrujadas e eu as inventei no local. Eles podem estar errados. Sua milhagem nas regexs reais pode variar, mas o conceito ainda permanece.

2
Mark Henderson