Nginx将文件夹的整个内容重定向301到子域

时间:2015-12-11 23:05:19

标签: wordpress redirect nginx

我使用Wordpress和Nginx创建了一个子域来托管所有图像

我已经更新了数据库以定义所有旧网址,例如; https://exemple.com/wp-content/uploads/2015/06/image_exemple.jpghttps://static.exemple.com/2015/06/image_exemple.jpg效果很好,我现在可以访问媒体,认为这个子域名

默认情况下,子域指向与Wordpress相同的文件夹,用于媒体 / wp-content / uploads /

现在我尝试将整个文件夹重定向到永久重定向到我的子域

location = /wp-content/uploads/ {
    rewrite ^(.*)$ https://static.exemple.com/$1 permanent;
} 

当我curl -I https://static.exemple.com/看到标题响应时,它似乎有效;它告诉我 HTTP / 1.1 301永久移动,如果我这样做curl -I https://exemple.com/wp-content/uploads

但是,当我为例如 curl -I https://exemple.com/wp-content/uploads/2015/06/image.jpg https://static.exemple.com/2015/06/image.jpg而言,这两个响应都是 HTTP / 1.1 200 OK

它似乎有效,但它确实意味着重定向301适用于文件夹的整个内容..对于信息,文件夹上传/ 有许多子文件夹。

我试过

location = /wp-content/uploads/ { 
    return 301 https://static/exemple.com/$request_uri;
}

响应相同...... 也许我做错了什么.. 任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

好的,我解决了这个问题。我发帖给谁想知道我是怎么做的。

解决方案,只需将此行放在服务器块中,而不是放在某个位置。

rewrite ^(/wp-content/uploads)(.*)$ https://static.exemple.com$2 permanent;

现在使用此命令

测试请求
curl -I https://exemple.com/2015/06/logo.jpg 

您应该看到答案 HTTP / 1.1 301永久移动

位置:https://static.exemple.com/2015/06/logo.jpg

无论如何,你可以用wget或其他工具来做到这一点!

wget -d URL