ThinkPhp伪静态设置后,访问静态资源也提示找不到Controller
ThinkPhp没有配置伪静态时,除了默认的IndexController能访问,其他路由Controller都访问不到,提示404错误。配置了伪静态后就解决了这个问题。
但是当我的ThinkPhp后台项目中有静态资源放在public目录(或子目录)中需要访问时,也提示到不到PublicController,这就需要配置静态资源不走Controller。
我最后这样配置,上面这两个问题都解决了。
//静态资源
location ~ \.(js|css|gif|jpe?g|png|ico|html|apk|json)$ {
expires 30d;
access_log off;
}
//伪静态
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}