Cara mengelola pengalihan massal di ASP.NET

pemrograman


Saya ingin mengelola 301.404 dan pengalihan lainnya. Saya bisa membuat tabel di database sql server (yang akan berisi url lama dan baru). Bagaimana cara memanggil mereka di server ujung depan ketika ada yang menekan URL lama.

Solusi untuk non-MVC lebih disukai. Seharusnya cepat.

Saya menghargai bantuan apa pun. Terima kasih.

Apa yang saya coba:

Saya mencoba menggunakannya secara manual tetapi saat ini tidak memungkinkan dengan begitu banyak URL.

Solusi 3

Ada banyak cara untuk menangani pengalihan. Urutannya penting dalam fakta berapa banyak overhead aplikasi yang dihasilkan, jika ada; semakin sedikit biaya overhead yang dikeluarkan, semakin tinggi kinerja situs web Anda.

1. Pada tingkat server (web). Ini biasanya dilakukan melalui .htaccess file atau di situs ASP.NET bisa melalui web.config mengajukan. Keuntungan metode ini adalah dampaknya terhadap aplikasi sangat kecil, jika ada, sehingga Anda akan melihat dampak kinerja yang mendekati 0. Kerugian dari metode ini adalah dilakukan melalui file konfigurasi aplikasi dan umumnya memerlukan restart aplikasi.

2. Di dalam pipa http. Ini akan dilakukan melalui modul (alias hook, handler). Ini dapat ditulis untuk mencegat setiap permintaan, dan menentukan apakah kita harus membiarkannya masuk ke situs web atau apakah kita perlu melakukan hal lain; seperti pengalihan, mengembalikan 404, dll. Keuntungannya adalah hal ini masih dalam tahap awal dan memiliki dampak kinerja yang kecil, serta sangat kuat. Kerugiannya adalah metode ini paling sulit diterapkan secara efektif. Ini adalah opsi yang sangat ampuh dan dapat membuat situs Anda mogok karena kesalahan sederhana.

3. File sisi server. Setiap file memiliki pengalihan terprogram yang terletak di dalamnya. Sangat membosankan untuk dipelihara. Anda juga bisa menggunakan ini dalam pengontrol MVC. Seluruh aplikasi diperlukan untuk menjalankan ini.

4. File sisi klien. Setiap file html memiliki elemen di dalamnya. Kerugian yang sama seperti varian sisi server, dan mengharuskan browser untuk benar-benar memprosesnya – bersama dengan fakta bahwa mungkin tidak didukung atau dinonaktifkan.

Bagaimana dengan DB. Anda dapat menerapkan keempat metode menggunakan DB. Metode yang Anda pilih untuk menerapkan solusi pengalihan akan menentukan cara mengintegrasikan DB. Jika Anda menggunakan file konfigurasi/htaccess, Anda perlu menulis ulang blok pengalihan berdasarkan tabel DB Anda.

Saya pribadi menggunakan metode 2, karena saya perlu mengembangkan iHttpHandler untuk tujuan keamanan di CMS berbasis MVC. Saya memuat semua pengalihan ke dalam koleksi dan memindainya untuk setiap permintaan. Versi sebelumnya mengakses DB pada setiap panggilan tetapi ini menciptakan overhead yang harus saya hilangkan.

Solusi 1

Menggunakan database untuk mengelola ini – sangat bodoh. Google akan memberikan banyak alternatif, seperti ini.

Cara mengalihkan browser secara otomatis ke halaman web lain dari halaman Anda sendiri[^]

Solusi 2

Anda dapat menentukan halaman kesalahan 301 dan 404 khusus di web.config, dan kode di belakang halaman tersebut (di PageLoad metode?), evaluasi respons 404, yang harus menyertakan url yang salah, dan tulis kode untuk mengalihkan ke halaman yang sesuai.

Jadi, jika urlnya buruk http://www.example.com/hello111Anda dapat menyetel string ke url yang benar (http://www.example.com/hello-world).

コメント

タイトルとURLをコピーしました