我想要的url
http://www.example.com
redirect到
http://www.example.com/something/else
这是因为一些不可思议的WP插件总是在基础url上设置一个cookie,这不允许我caching它。
我试过这个指令:
location / { rewrite ^ /something/else break; }
但1)没有redirect和2)页面开始向我的服务器发送超过1000个请求。 有了这个:
location / { rewrite ^ http://www.example.com/something/else break; }
Chrome报告一个redirect循环。
什么是正确的正则expression式使用?
你真的想要匹配你的位置块的根url,而不是“绝对一切”:
location = / { rewrite ^ /something/else break; }
这应该做的工作:
location / { rewrite ^/$ /something/else break; }
rewrite语句默认执行内部重写,除非目标是绝对URL,或者设置redirect或permanent标志。 像这样的东西会返回一个HTTPredirect到客户端:
rewrite ^/$ /something/else redirect;
或者你可以这样做:
location = / { rewrite ^/$ http://example.com/an/other/path; }
当重写URL以“http”scheme开始时,Nginx会自动发送一个HTTP 302redirect到客户端。