網站環境: phpstudy8.1.0.4集成環境 PHP7.3.4nts + Ngnix1.15.11 + MySql5.7.26
框架:Laravel6.18.0
問題現象:
首頁加不加index.php都能正常訪問,沒問題;其他頁面的訪問必須要在前面加index.php才能訪問,如:http://laravel.pensive.top/admin/login提示"404 not found",如果改成:http://laravel.pensive.top/index.php/admin/login又能訪問,不會報錯。
解決方法:
1,為了讓其他頁面不用在前面加index.php也能正常訪問,我在學習群里也問了,百度上也查了幾天資料,終於找到了https://blog.csdn.net/W1122345/article/details/82424750這篇文章上的方法有效果。
參照上面的方法,我在phpstudy上的設置-->配置文件-->vhosts.conf-->laravel.pensive.top_80.conf 上編輯添加了
try_files $uri $uri/ /index.php?$query_string;
這一行代碼,【如下圖】
2,重啟Nginx1.15.11服務使得設置生效。
3,雖然上面的1,2點能解決問題,但是反復使用phpstudy8.1.0.4發現直接改完laravel.pensive.top_80.conf 后在【網站】--> 對應站點的【管理】-->【修改】的介面會提示配置文件已手動修改,在此操作會覆蓋之前的操作,【如下圖】
而且,手動改的配置文件內容雖然有效果,但是在【網站】-->【管理】-->【修改】的這個窗口的各個參數沒有同步,只是提示改了這里后原先的手動配置會被覆蓋。這樣的話當你以后要在這里修改這個網站別的設置時,比如切換PHP版本什么 的,一確認的話,前面 手動改的解決index.php問題的代碼就不存在了。所以不推薦1,2的方法。
【推薦的方法】
phpstudy8.1.0.4 -->【網站】-->【管理】-->【修改】-->【錯誤頁面】參數最后添加代碼
try_files $uri $uri/ /index.php?$query_string;
END