这是我的服务器块:
server {
listen 80;
server_name localhost;
root /www/html;
index index.php;
location = / {
autoindex on;
index index.php;
try_files $uri $uri/ =404;
}
location ~*\.(css|js|gif|jpe?g|png)$ {
root /www/html/shared;
rewrite ^/releases(.*)$ $1 last;
expires 5m;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
现在,这样做只会吐出一个禁止的#34; 403禁止"我尝试访问" localhost /"时出错。但是,如果我直接访问页面,那么页面工作得非常好 - " localhost / index.php"。我不能为我的生活找出原因。 error.log也没有给我任何有用的信息或错误代码 - 只是页面是"禁止"。 这是抛出的错误:
2017/03/29 14:37:35 [error] 11980#8840: *94 directory index of "C:/www/html/" is forbidden, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", host: "localhost"
这是基于Windows的 nginx服务器。
答案 0 :(得分:0)
答案发现有点令人失望,但我会回答它,所以如果有人遇到这个愚蠢的问题,他们可以解决它。
php正在寻找带有前缀“/ www / html”,而不是“/ www / html /”的文件,因此当它想要我的索引它试图加载“/www/htmlindex.php”而不是“/www/html/index.php”。您可以通过执行任何操作来解决此问题
fastcgi_index /index.php;
或在根目录末尾添加/。