NGINX 在 URL 重写中删除 index.php

NGINX 在 URL 重写中删除 index.php

我必须修改 NGINX 配置以允许从不同的文件夹获取静态文件。

server {
    listen 80;
    server_name app.test;
    root "/home/vagrant/app/public";

    index index.html index.htm index.php;

    charset utf-8;

    location ~ (.*.css|.*.js|.*.png|.*.jpg|.*.gif|.*.svg) {
        alias /home/vagrant/app$request_uri;
    }

     location / {
        try_files $uri $uri/ /index.php?$args;
     }

    sendfile off;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
    }

    location ~ /\.ht {
        deny all;
    }
}

我添加的部分是location .*.css等,它基本上匹配那些文件扩展名,如果找到它们,它会直接从主项目文件夹以外的特定文件夹中为它们提供服务。

否则,我希望它将 PHP 请求发送到主项目应用程序,因此位置为 /。

http://app.test/index.php/它运行正常,但问题是每当我尝试导航到时,它都会显示 URL,http://app.test/但在我添加别名之前它并没有这样做,所以我想知道别名是否是导致它的原因,以及如何摆脱添加的index.php。提前谢谢您 :)

相关内容