我想要根 URL
http://www.example.com
重定向至
http://www.example.com/something/else
这是因为某些奇怪的 WP 插件总是在基本 URL 上设置 cookie,从而不允许我缓存它。
我尝试了这个指令:
location / {
rewrite ^ /something/else break;
}
但是 1) 没有重定向,2) 页面开始向我的服务器发送超过 1,000 个请求。使用这个:
location / {
rewrite ^ http://www.example.com/something/else break;
}
Chrome 报告重定向循环。
使用正确的正则表达式是什么?
答案1
你真的想匹配确切地您位置块中的根 URL,而不是“绝对所有内容”:
location = / {
rewrite ^ /something/else break;
}
答案2
这应该可以完成这项工作:
location / {
rewrite ^/$ /something/else break;
}
答案3
这rewrite
陈述默认情况下执行内部重写,除非目标是绝对 URL 或您设置redirect
或permanent
标志。类似这样的操作将向客户端返回 HTTP 重定向:
rewrite ^/$ /something/else redirect;
答案4
或者你可以这样做:
location = / {
rewrite ^/$ http://example.com/an/other/path;
}
当重写的 URL 以“http”方案开头时,Nginx 会自动向客户端发送 HTTP 302 重定向。