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

请登陆后在进行评论
  • 随机文章
  • Linux搭建LNMP,nginx使用ThinkPHP二级目录不能访问的问题

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

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

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

    ThinkCMF QQ互联插件教程3——QQ互联插件文件配置

    ThinkCMF QQ互联插件教程3——QQ互联插件文件配置

    一台电脑如何同时访问外网和内网

    一台电脑如何同时访问外网和内网

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

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

    ThinkCMF QQ互联插件教程4——QQ互联插件安装使用

    ThinkCMF QQ互联插件教程4——QQ互联插件安装使用