最近在用thinkphp做一個項目,基本完成后部署到nginx服務器上才發覺nginx是不支持pathinfo的,網上搜索了別人的解決方法,有兩種思路:
1、修改thinkphp讓他可以在nginx上運行
2、修改nginx讓它支持pathinfo
網上說nginx開啟pathinfo是有一定風險的,能不用pathinfo最好不用,所以還是折騰thinkphp吧,個人覺得這種方法相對第2種方法來得簡單
修改nginx的rewrite
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
然后項目配置下url模式改為2
'URL_MODEL'=>2,
如果是多個項目,布署項目時要把項目布署到目錄里,如后臺的項目放到Admin目錄里,那么在nginx的rewrite里再寫一條
location /Admin/ {
if (!-e $request_filename) {
rewrite ^/Admin/(.*)$ /Admin/index.php?s=$1 last;
break;
}
}
最后也不要忘記把這個項目的url模式改為2。
更多信息請查看IT技術專欄