Nginx 下虚拟主机配置如下:
server {
listen 80;
server_name ectest.local.com;
root "D:/Dropbox/CodeRoot/Shop/ecstore-V0.8/";
location / {
index index.php index.html error/index.html;
error_page 400 /error/400.html;
error_page 403 /error/403.html;
error_page 404 /error/404.html;
error_page 500 /error/500.html;
error_page 501 /error/501.html;
error_page 502 /error/502.html;
error_page 503 /error/503.html;
error_page 504 /error/504.html;
error_page 505 /error/505.html;
error_page 506 /error/506.html;
error_page 507 /error/507.html;
error_page 509 /error/509.html;
error_page 510 /error/510.html;
include D:/Dropbox/CodeRoot/Shop/ecstore-V0.8//nginx.htaccess;
autoindex on;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9004;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
这个配置解析正常的没有 get 参数的网址没有问题。现在有一个后台地址: http://ectest.local.com/shopadmin/index.php?ctl=passport 。正常情况下这个地址应该解析到后台的 passport 控制器文件。
现在访问上面的网址,会直接报 403 Forbidden 错误,在 index.php 程序里打印输出也无法输出。开了 Nginx 错误日志,日志里面也没有 403 的信息,只有 access.log 有 403 请求错误。
请教各位大佬应该如何改动虚拟主机配置使得这个网址正确解析。
1
bjzhush 2022-12-15 16:50:59 +08:00
第一步先把 index.php 内容 换成 exit ('hi ); 根据这个能定位到是 NGINX 报 403 还是 PHP 报 403
|
2
yzql2018 OP @bjzhush 试过了,完全进不去 index.php 文件,我感觉是 nginx location 配置有问题,但又不知道怎么修改
|
3
bjzhush 2022-12-15 23:14:02 +08:00 via iPhone
用编辑器编辑啊,什么叫进不去呢?
|
5
julyclyde 2022-12-19 09:37:02 +08:00
nginx 开 debug 日志吧
|