Ketika saya hanya mengerti 404.asp sebelumnya, saya pernah berfantasi untuk menulis semua kode program menjadi 404.asp untuk mewujudkan stasiun yang mensimulasikan halaman web statis.
Sampai saya melihat server. Transfer ASP, gagasan menghasilkan halaman statis dengan 404 mensimulasikan halaman statis yang muncul di pikiran saya. .
<!-#Sertakan file = bin/404_qury->
< %
Pilih case bin_command
Bin kasing
Server.transfer (bin/web)
Uploadfile case
Server.Transfer (Bin/Send-Stream)
Kasus lain
Server.transfer (bin/send-404)
Akhiri Pilih
%>
Hehe, dengan jelas, didasarkan pada bin_command untuk menilai apakah itu sangat fungsional untuk dicapai. . Tidak ada penulisan ulang dalam php.
Kode sumber bin/404_query adalah sebagai berikut:
< %
Urls = mid (request.querystring, instr (request.querystring,: 80) +4)
if instr (urls,/)> 0 lalu
bin_command = kiri (urls, instr (urls,/)-1)
getFile = ganti (urls, bin_command &/,)
kalau tidak
bin_command = bin
akhiri jika
%>
Kode ini terutama untuk menentukan apa yang dieksekusi Bin_Command.
Seperti: demo.com/index5.html, lalu bin_command = bin, Anda bisa tahu
Demo.com/uploadfiles/123456.gif (File ini sebenarnya sesuai dengan file/123456.gif), lalu Bin_Command = unggahan, Anda dapat tahu bahwa Anda dapat memberikannya ke bin/pengiriman-stream. 123456.gif. Anda dapat merujuk pada artikel yang saya tulis artikel AP Practical Binarywrite dan Adodb.stream.
Demo.com/111/222, lalu bin_command = 111 ″, tidak ada definisi dalam kasus tertentu, itu lagi, dan menyerahkannya ke bin/send-404 untuk diproses.
Dengan cara ini, semua pengunjung (termasuk: Baidu, Google), situs ini adalah halaman statis. Sejauh yang saya tahu, 99,9%dari host IIS domestik tidak mendukung Isapi_rewrite, dan saya pernah bertemu sekali karena sumber dayanya terlalu serius dan akan segera dibatalkan.
Berikut ini adalah apa yang saya lihat di Asp Learning Online, melekat pada bagian belakang untuk referensi:
Hubungi metode server.transfer, segera hentikan pelaksanaan halaman pertama dan mulailah menjalankan halaman kedua.
Jika halaman pertama mulai menulis buffer respons, halaman kedua ditambahkan ke buffer alih -alih menggantinya.
Jika buffer terbuka, metode ini akan memodifikasi kepala HTTP, kecuali tidak ada konten yang telah dikirim.
Saat dikirim ke aplikasi lain, aplikasi aplikasi start dan sesi akan mencakup informasi aplikasi.
Contoh teladan
Halaman contoh berikut menjelaskan cara menggunakan metode server.transfer.
1.
<Html>
<body>
<h3> Langkah 1 -Form halaman </h3>
<tabel perbatasan = 1>
<tr>
<th> Posting </t>
<td>
<Form Action = Page2.asp Metode = Post>
<Jenis input = nama teks = nama/>
<Input Tipe = Kirim Nilai = Kirim/>
</form>
</td>
</tr> <te>
</tr>
<th> dapatkan </t>
<td>
<Form Action = page2.asp Metode = get>
<Jenis input = nama teks = nama/>
<Input Tipe = Kirim Nilai = Kirim/>
</form>
</td>
</boable>
</body>
</html>
2. Masukkan kode berikut sebagai page2.asp (tanpa kutipan):
< % @Ganguage = vbscript %>
<Html>
<body>
<h3> Langkah 2 -Transfer halaman </h3>
< %
Pilih case ucase
Posting Kasus
Server.transfer page3a.asp
Kasus dapatkan
Server.transfer page3b.asp
Kasus lain
Response.write kata kerja http yang tidak diketahui digunakan.
Akhiri Pilih
%>
</body>
</html>
3. Masukkan kode berikut sebagai page3a.asp (tanpa kutipan):
< % @Ganguage = vbscript %>
<h3> Langkah 3A -Hasil Posting </h3>
<p> halo < % = request.form (name) %> </p>
4. Masukkan kode berikut sebagai page3b.asp (tanpa kutipan):
< % @Ganguage = vbscript %>
<h3> Langkah 3B -Get Hasil </h3>
<p> halo < % = request.queryString (name) %> </p>
Catatan: Dua halaman terakhir adalah halaman HTML yang tidak lengkap. Ini karena kedua halaman ditambahkan ke buffer halaman kedua.
Jelajahi halaman1.asp untuk menguji contoh ini.