nginx重写重定向文件夹

Posted

技术标签:

【中文标题】nginx重写重定向文件夹【英文标题】:nginx rewrite redirect for a folder 【发布时间】:2013-08-20 17:47:52 【问题描述】:

所有...

我正在尝试在 nginx 中做一些事情来重定向所有对文件的调用

/images/

进入:

/assets/images/

有人可以帮我改写规则吗?给予 301 永久移动状态?

【问题讨论】:

【参考方案1】:

将以下配置添加到您的 nginx.conf 中

rewrite ^/(images.*) /assets/$1 permanent;

【讨论】:

return 301 而不是重写是首选(nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/…),请参阅@gsf 的答案【参考方案2】:

这是使用较新版本的 Nginx 执行此操作的首选方法:

location ~ ^/images/(.*) 
    return 301 /assets/images/$1;

请参阅https://www.nginx.com/blog/creating-nginx-rewrite-rules/ 了解更多信息。

【讨论】:

~ 是干什么用的? ^ 呢?它可以使用$request_uri 而不是$1 吗? @ingo 请参阅location documentation。 ~(波浪号)表示这是一个区分大小写的正则表达式。否则,/Images/imAgEs 的 URL 将匹配。如果这是所需的行为,则使用 ~* 使其不区分大小写。 @ingo 正则表达式前面的^(插入符号)将其锚定到行首。没有它,/some/plugin/images/blah.jpg 这样的 URL 也会匹配。 @ingo 在这种情况下,location /images/ return 301 /assets$request_uri; 可以工作。但是,如果重定向除了添加到原始目录之外(例如/images -> /pics),则仍然需要正则表达式和$1 你是真正的救星@gsf

以上是关于nginx重写重定向文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Firefox 重定向 Nginx 重写

markdown NGINX重定向,重写

Nginx RegEx 对多个站点进行重写或内部重定向循环

Nginx——反向代理&路径重写&重定向实践示例

Nginx中的Rewrite的重定向配置与实践

Nginx 配置旧域名重定向到新域名