it-swarm-tr.com

URL yeniden yazmanın uygulanmasının en hızlı / en ucuz yolu nedir?

İlgili başka bir sor - URL'yi en kısa sürede yeniden yazmanız gerekiyorsa, kullandığınız veya bildiğiniz bazı yöntemler neler yapabilir?

2
Mark Henderson

8 saatin altında birkaç yüz ürün yapmayı başardık. İşte senaryomuz:

Sahibiz:

  • Anlamsız parametrelerle dolu çirkin URL'ler
  • Şirket içi geliştiriciler
  • SQL veritabanına ve şemaya tam erişim
  • IIS6/ ISAPI Yeniden Yazma (ancak bunu başkaları için yapabilirdik)

Seçenek 1

Ürünlerimiz tablo şöyle görünüyordu:

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

Böylece, products masamızdan geçen ve httpd.ini dosyamızda (ISAPI Rewrite'ın .htaccess) sürümünde girdiler yaratan küçük bir toplu iş programı yazdık. Bunun gibi yüzlerce giriş:

RewriteRule (/product-1/) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N001 [I,O,U] * Lütfen feragatnameye bakınız

Ürünlerimiz çok sık değişmiyor, bu yüzden bir şey eklediğimizde bunu manuel olarak tekrar çalıştırıyoruz. Zarif değil, ama bu çabuk/ucuza halletmekle ilgili.

Ardından, bağlantılarımızın ürünlere yazdırıldığı her yerde, bağlantıların tam URL’lerine gönderildiğinden emin olduk.

Bu toplamda yaklaşık 8 saat sürdü.

Seçenek 2

Buna benzeyen tek bir genel URL Yeniden yazma kuralı:

RewriteRule (/products/)(.*/)(.*) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N$3 [I,O,U] * Lütfen feragatnameye bakınız

Bu yazabileceğimiz anlamına geliyordu:

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

Ve doğru URL'ye yeniden yazardı. O zaman bu sadece URL linklerinizin çıktısını değiştirmekle ilgilidir.

* FERAGATNAME: Regex becerilerim çok paslı ve bunları yerinde yaptım. Yanlış olabilirler. Gerçek regex'lerdeki milajınız değişebilir, ancak konsept hala geçerli.

2
Mark Henderson