Saya menggunakan laravel untuk pembangunan Direktori sumber statik dan penghalaan dalam projek akan mempunyai nama yang sama, seperti:
//web的静态资源路径
/public/web/xxx
//定义的路由
Route::group(['prefix' => 'web'], function () {
Route::get('/', 'XxxController@indexPage');
});
Jika dikonfigurasikan seperti ini, ralat 404 akan berlaku apabila menggunakan pelayan terbina dalam PHP untuk mengakses localhost:8000/web dalam persekitaran pembangunan:
The requested resource /web_dealer was not found on this server.
Selepas beberapa penyelidikan, nampaknya ia adalah kerana terdapat laluan sumber dengan nama yang sama dalam direktori awam, jadi pelayan tidak mempunyai sebab untuk memprosesnya secara langsung sebagai sumber statik. Tetapi sebenarnya, web ini hanyalah folder, jadi 404 di atas muncul.
Menggunakan pelayan apche untuk ujian, apache nampaknya mengubah hala (301) localhost:8000/web ke localhost:8000/web/, dan struktur direktori akan didedahkan pada halaman. Pilihan tetapan -Indeks hanya melumpuhkan paparan, tetapi localhost:8000/web masih akan diubah hala.
Saya ingin tahu cara mengkonfigurasinya jika anda ingin menyatukan laluan sumber statik dan penamaan laluan seperti yang ditunjukkan di atas. Atau adakah skema penamaan lain yang lebih baik?
Ini boleh dicapai dengan mengubah suai public/.htaccess (ujian tempatan LAMP diluluskan di bawah Linux Mint)
Langkah
Ubah suai fail .htaccess dalam direktori awam
Lokasi:
Maksud asal ialah : Jika ia bukan direktori!-d, mahupun fail!-f, kemudian parse ke index.php
telah diubah suai kepada
sekarang bermaksud : jika ia bukan fail !-f, kemudian parse ke index.php
(dalam erti kata !-d tidak lagi berguna)
Ujian tempatan lulus Pada masa ini tidak diketahui sama ada ia akan menyebabkan masalah lain.