nginx 中为多个项目 php 和 react 进行 URL 重写

nginx 中为多个项目 php 和 react 进行 URL 重写

当我直接从 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都能正常工作,而无需添加位置指令。提前致谢

相关内容