最近在用thinkphp做一個項目,基本完成后部署到nginx服務(wù)器上才發(fā)覺nginx是不支持pathinfo的,網(wǎng)上搜索了別人的解決方法,有兩種思路:
1、修改thinkphp讓他可以在nginx上運行
2、修改nginx讓它支持pathinfo
網(wǎng)上說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。