2016-05-20 74 views
0

我们将资源移动到新的容器或文件夹。从/documents/THE_FILE.pdf被搬到/assets/client_files/files/documents/THE_FILE.pdf注意到路径现在在/assets/cleint_files/files/目录内。Nginx:将某个文件路径url重定向到其新路径url

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

谢谢。

回答

4

一个简单的重写就可以了,把它添加到你的服务器块。

rewrite ^(/documents/.*)$ /assets/client_files/files$1 permanent; 

,这将抛出一个301重定向与URI与/documents/盯着新路径OT的请求。

有关Nginx的重写的更多信息,请检查docs here

UPDATE

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

location /documents/ { 
    rewrite ^(.*)$ /assets/client_files/files$1 permanent; 
} 
+0

抱歉,但我不能使用服务块,而不只是位置块。有没有办法做到这一点使用位置块? – Tinker

+1

@Tinker我已更新答案,请查看。 – Lution

+0

您是否想使用'return 301'来支持seo和机器人? –