我正在执行从Apache服务器到Nginx的迁移,并错过了一个执行重写的.htaccess
文件:
RewriteRule ^(.*)$ routes.php?params=$1 [NC,QSA]
例如,此终结点example.com/api/v1/param1/param2/param3
将被重写为https://example.com/api/v1/routes.php?params=/param1/param2/param3
在我重新尝试迁移之前,有人可以确认这是 Nginx 的正确等效项吗?
rewrite "(?i)^(.*)$" routes.php?params=$1
这是它在配置文件中的使用方式/api/v1
因为这是唯一需要重写的路径?
location /api/v1 {
rewrite "(?i)^(.*)$" routes.php?params=$1
}
更新
将其添加到Laravel Forge中的conf文件中似乎只会破坏应用程序并阻止显示任何视图。 相反,它说This site can’t be reached example.com refused to connect.
nginx
URI 都以前导/
开头,并且正则表达式在追加参数列表之前不会尝试删除/api/v1/
前缀。
尝试:
location /api/v1 {
rewrite ^/api/v1(/.*)$ /api/v1/routes.php?params=$1 last;
}