2016-05-20 75 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和機器人? –