it-swarm-id.com

Apa cara tercepat / termurah untuk menerapkan penulisan ulang URL?

Terkait dengan pertanyaan lain - jika Anda perlu menerapkan penulisan ulang URL secepatnya, metode apa saja yang telah Anda gunakan atau ketahui yang dapat mempercepat ini?

2
Mark Henderson

Kami berhasil melakukan beberapa ratus produk dalam waktu kurang dari 8 jam. Inilah skenario kami:

Kita dulu punya:

  • URL jelek anjing yang diisi dengan parameter tidak berarti
  • Pengembang internal
  • Akses penuh ke database SQL dan skema
  • IIS6/ ISAPI Rewrite (tapi kami bisa melakukan ini untuk orang lain)

Pilihan 1

Tabel produk kami terlihat seperti ini:

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

Jadi kami menulis sebuah program batch kecil yang akan loop melalui tabel products kami dan membuat entri dalam file httpd.ini kami (versi ISAPI Rewrite dari .htaccess), sehingga kami berakhir dengan file dengan ratusan entri seperti ini:

RewriteRule (/product-1/) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N001 [I,O,U] * Silakan lihat penafian

Produk kami tidak terlalu sering berubah, jadi kami menjalankannya kembali secara manual setiap kali kami menambahkan sesuatu. Tidak elegan, tapi ini tentang menyelesaikannya dengan cepat/murah.

Lalu, di mana pun tautan kami dicetak ke produk, kami hanya memastikan bahwa tautan tersebut dihasilkan ke URL lengkapnya.

Ini memakan waktu sekitar 8 jam total.

Pilihan 2

Aturan penulisan ulang URL generik tunggal yang terlihat seperti ini:

RewriteRule (/products/)(.*/)(.*) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N$3 [I,O,U] * Silakan lihat penafian

Ini berarti kita dapat menulis:

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

Dan itu akan menulis ulang ke URL yang benar. Maka itu hanya masalah mengubah output dari tautan URL Anda.

* DISCLAIMER: Skill regex saya sangat berkarat dan saya membuatnya di tempat. Mereka mungkin salah. Jarak tempuh Anda di regex yang sebenarnya mungkin berbeda, tetapi konsepnya tetap berlaku.

2
Mark Henderson