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重写重定向文件夹的主要内容,如果未能解决你的问题,请参考以下文章