fastadmin修改后台入口提示 模块不存在:admin.php

安装完 fastadmin

修改后台入口文件为 admin.php

访问 /admin.php/index/login?url=%2Fadmin.php 提示 模块不存在:admin.php

断点发现没有走 public/admin.php 这个文件

请问是哪里出了问题?

server {
    listen 80;
    server_name fastadmin.test;
    root "****/public";
    
    index index.html index.htm index.php;
    

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
        # autoindex on;
        if (!-e $request_filename){
             rewrite  ^(.*)$  /index.php?s=$1  last;   break;
        }
    }
    
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass php_upstream;        
        #fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
    

    charset utf-8;
    
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    location ~ /\.ht {
        deny all;
    }
}
阅读 13.5k
1 个回答

我找了半天 网上都没什么答案
最后参考了这个https://ask.fastadmin.net/que...

location / {
                if (!-e $request_filename) {
                rewrite ^(.+?\.php)(/.+)$ /$1?s=$2 last;# 加上这一句
                rewrite ^(.*)$ /index.php?s=$1 last;
                break;
            }
          
  }

2021年10月8日更新以下
上面的参考链接里也有人更新了回答

最近几年我一直用着dnmp 以前使用的lnmp
网站配置也是复制一份默认的serve修改
后面再次使用fastadmin 的时候又遇到这个问题 然后我就去找了一下问题以及找了lnmp的默认配置然后 发现下面的问题
https://github.com/yeszao/dnm...

location ~ [^/]\.php(/|$) {
        fastcgi_pass   php:9000;
        include        fastcgi-php.conf;
        include        fastcgi_params;
    }

你从这个配置和我之前回答的看就是匹配php文件的时候
原来的只能匹配xxx.com/QTBZSOKxrA.php后面就不能再跟东西了
而我上面的新贴的配置会继续匹配/
fastadmin 默认路由 你输入xxx.com/QTBZSOKxrA.php 会跳转到xxx.com/QTBZSOKxrA.php/index/login
看上面的我提的issues里的截图就知道了
所以用后面这个规则 转发php的 rewrite默认Thinkphp文档里的配置就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题