Nginx:将某个文件路径URL重定向到其新路径url

Tin*_*ker 1 redirect nginx

我们将资产移动到新的容器或文件夹.从/documents/THE_FILE.pdf被移动到/assets/client_files/files/documents/THE_FILE.pdf注意到路径现在在/assets/cleint_files/files/目录中.

问题是,我们已经有大量内容链接到文件但使用旧路径.我只是想让工作变得简单,因为整个网站中有2000个这样的实例.我希望这可以使用nginx来完成它会在检测到这样的链接时将某个url重定向到它的新url http://www.domain.com/documents/THE_FILE.pdf.只要url的第一条路径是/documents/,它就会被重定向到新路径/assets/client_files/files/documents/

谢谢.

Lut*_*ion 6

一个简单的重写即可,将其添加到您的服务器块.

rewrite ^(/documents/.*)$ /assets/client_files/files$1 permanent;
Run Code Online (Sandbox Code Playgroud)

这将抛出301重定向请求,其中URI与/documents/新路径一起盯着.

有关Nginx重写的更多信息,请查看此处文档

UPDATE

你也可以在这样的位置做到这一点

location /documents/ {
    rewrite ^(.*)$ /assets/client_files/files$1 permanent;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果你想测试某些东西,“rewrite ... permanent”或“return 301 ...”很糟糕,因为浏览器会记住这一点。请使用“重写...重定向”或“返回 302 ...”! (3认同)