当我直接从 IP 访问我的网站时,出现 404 错误。默认根目录是/var/www/html
。我通过 访问它http://<server_public_ip>/folder_name
。
这是我的文件夹结构。
/var/www/html
├── WordPress1/
├── WordPress2/
├── CI_or_Larawel/
├── any_direct_file (.php,.zip or anything else)
一般情况下默认位置指令
location / {
try_files $uri $uri/ =404;
}
应该适用于根目录下的所有文件和文件夹。但它不起作用。当我从 IP 访问它时,http://<server_public_ip>/folder_name
它会变成 404。
为了解决这个问题,我不得不根据安装在根目录中的站点创建多个位置指令。我不想这样。我只是希望它应该能够工作,无论我在根目录下添加什么站点/文件夹。
我的conf文件如下
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
# I do not want to add location directive for all folders under /var/www/html
# but the default location was not working and it was going to 404. That I would like to change
location /wordpress1 {
try_files $uri $uri/ /wordpress1/index.php?$args;
}
# pass PHP scripts to FastCGI server
location ~ \.php$ {
#try_files $uri =404;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# fastcgi_pass 127.0.0.1:9000;
}
location ~ /\.ht {
deny all;
}
}
我只希望我放在它下面的任何文件/文件夹/var/www/html
都能正常工作,而无需添加位置指令。提前致谢