我正在使用 nginx 和 react 的 try_files 指令来强制所有路径转到/index.html并由 react 路由器处理,这样路径就不需要以/#/开头。
这适用于:
location / {
try_files $uri /index.html;
}
因此,像 /invitation
这样的 url 将转到正确的位置。
但是,仍然有一些来源正在生成/#/
url,我希望将它们重写为没有/#/
的等效 url(因此/#/invitation
会转到 /invitation
)。
我已经尝试了我能想到的所有变体,包括更改顺序、转义特殊字符以及有和没有永久重定向,但没有任何效果:
location / {
rewrite ^/#/(.*) $1 permanent;
try_files $uri /index.html;
}
正确的方法是什么?
Richard Smith 的评论是正确的 - 锚点部分永远不会发送到服务器。更多信息,请访问:URL 的锚点部分是否发送到 Web 服务器?