Mengendalikan Slash dalam Parameter URL
Dalam pembangunan web, adalah perkara biasa untuk menghantar parameter melalui URL. Walau bagaimanapun, aksara khas seperti garis miring boleh mengganggu padanan laluan dan menyebabkan isu.
Pertimbangkan contoh berikut:
routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" });
Jika anda menggunakan URL http://localhost:5000/Home/About /100/200 (mengandungi garis miring yang dikodkan URL), anda akan melihat bahawa tiada laluan yang sepadan adalah dijumpai.
Penyelesaian:
Satu penyelesaian yang mungkin ialah menggunakan parameter tangkap semua. Sebagai contoh, anda boleh mengubah suai laluan kepada:
routes.MapRoute("Default", "{controller}/{action}/{*id}", new { controller = "Home", action = "Index", id = ""});
Ini membolehkan parameter id menerima sebarang nilai, termasuk yang mengandungi garis miring.
Pilihan lain ialah menggunakan pengekod URL tersuai/ penyahkod. Ini melibatkan penciptaan kelas yang menukar aksara yang bermasalah untuk URL kepada format yang lebih sesuai, seperti pengekodan Base64. Contohnya:
public class UrlEncoder { ... }
Anda kemudian boleh menggunakan kelas ini untuk mengekod dan menyahkod parameter mengikut keperluan. Berikut ialah contoh pelaksanaan:
public string UrlEncode(string encode) { ... } public string UrlDecode(string decode) { ... }
Ini membolehkan anda mengendalikan aksara khas dengan lebih fleksibel sambil mengekalkan kefungsian laluan anda.
Akhirnya, penyelesaian terbaik bergantung pada keperluan khusus aplikasi anda . Pertimbangkan pilihan ini apabila menggunakan parameter yang mungkin mengandungi garis miring atau aksara bermasalah lain.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengendalikan garis miring dalam parameter URL dengan berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!