Apabila menggunakan perisian tapak web, saya mendapati bahawa index.php dalam direktori akar sesetengah perisian boleh menjana berbilang halaman web yang berbeza, seperti:
localhost/index.php/blog;
Bagaimana kaedah penghalaan ini dilaksanakan? Terima kasih!
Untuk
localhost/index.php
,访问的文件地址是localhost/index.php
没错,然后/blog
, ia boleh difahami sebagai parameter,Bagaimana untuk mendapatkannya? Semak maklumat $_SERVER.
Sebagai contoh, parameter '/blog' sepadan dengan kaedah indeks pengawal Blog, dan kemudian logik yang sepadan boleh dilaksanakan dengan memanggil (Blog baru())->index().
Seterusnya, parameter '/blog/add' sepadan dengan kaedah tambah pengawal Blog, dan kemudian logik yang sepadan boleh dilaksanakan dengan memanggil (Blog baharu())->index().
Untuk pelayan, www.xxx.com/index.php/test hanya boleh mengenali www.xxx.com/index.php Ini dikonfigurasikan dalam Nginx atau Apche, seperti konfigurasi berikut:
Bagi ujian maklumat seterusnya, ia diiktiraf oleh kod PHP itu sendiri. Ia sebenarnya merupakan parameter (Bagi cara kod PHP menerima parameter ini, anda perlu melihat bagaimana Nginx atau Apache berinteraksi dengan PHP.) Apabila ini Selepas. mendapatkan parameter "ujian", anda boleh melakukan apa yang anda mahu berdasarkan parameter ini, anda boleh melakukan perkara yang berbeza dan menyediakan pelbagai fungsi. Ini juga pemahaman saya tentang penghalaan.
Format parameter berikut dipanggil PATH_INFO, gesaan apache secara lalai, nginx perlu memadankannya dengan sendirinya.
Ini sama dengan index.php?url=/path/to/xxx Ia hanya menggunakan parameter untuk mewakili laluan projek.