小编jch*_*rls的帖子

基于正则表达式的NGINX别名路径

我正在尝试添加一个带有别名指令的新位置块,该指令基于动态 URI 以访问不同的 API。现在我可以手动添加每个位置块,但想知道是否可以使用 REGEX 来映射它。

问题是它返回了 404 错误。我在服务器上的不同文件夹中运行 laravel 子应用程序。

有什么线索吗?

**

手动工作

location /api/product {
    alias /path/to/api/product/public;
    try_files $uri $uri/ @rewrite;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }
}

location @rewrite {
    rewrite /api/product/(.*)$ /api/product/index.php?/$1 last;
}
Run Code Online (Sandbox Code Playgroud)

错误 404 / 未指定输入文件

location ~ /api/(.*) {
    alias /path/to/api/$1/public;
    try_files $uri $uri/ @rewrite;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }
}

location @rewrite {
    rewrite /api/(.*)/(.*)$ /api/$1/index.php?/$2 last;
}
Run Code Online (Sandbox Code Playgroud)

更多测试 …

nginx

3
推荐指数
1
解决办法
2342
查看次数

标签 统计

nginx ×1