Linux搭建LNMP,nginx使用ThinkPHP二级目录不能访问的问题


最近在写一个项目的接口,使用thinkphp5开发,项目由apache转到nginx,由于nginx不支持.htaccess,所以需要设置伪静态,而设置伪静态就出现了404错误的问题。

image.png

于是,设置了nginx伪静态如下

location / {
	if (!-e $request_filename){
		rewrite  ^(.*)$  /index.php?s=$1  last;   break;
	}
}

设置了伪静态以后。发现可以访问项目运行目录的文件,但是二级目录的文件却无法访问

目录如下:

image.png

现在api文件夹下还有对应的文件,现在能够访问得到api的index.php文件,但是api对应的项目文件夹中文件并不能访问,所以要解决这个问题,还需要打开配置文件,再对api文件夹做伪静态设置。

切记,配置文件不在项目中,具体路径看安装的nginx的路径来寻找

例如/www/server/panel/vhost/nginx/

在里面找到自己的项目,为api设置伪静态,如下:

location / {
	if (!-e $request_filename){
		rewrite  ^(.*)$  /index.php?s=$1  last;   break;
	}
}
location /api/ {
    index index.php index.html index.htm;
    if (!-e $request_filename){
        rewrite ^/api/(.*)$ /api/index.php?s=$1 last;
    }
}

这样就可以进行访问了。

还有,如果api不设置伪静态,还可以使用如下路径进行访问:

/api/index.php/demo

请登陆后在进行评论
  • 随机文章
  • ThinkCMF教程——上传图片添加水印

    ThinkCMF教程——上传图片添加水印

    ThinkPHP5 一个字段对应多个条件查询的解决办法

    ThinkPHP5 一个字段对应多个条件查询的解决办法

    关于PHPstorm移动网络下不能够连接各大云服务器的解决办法(could not list the contents of folder)

    关于PHPstorm移动网络下不能够连接各大云服务器的解决办法(could not list the contents of folder)

    百度编辑器UEditor代码高亮以及换行问题

    百度编辑器UEditor代码高亮以及换行问题

    关于thinkcmf模板配置文件的值修改后无变化的解决办法

    关于thinkcmf模板配置文件的值修改后无变化的解决办法

    layui框架——表格详解(预告)

    layui框架——表格详解(预告)