Você realmente deseja corresponder exatamente o URL raiz em seu bloco de localização, não "absolutamente tudo":
location = / {
rewrite ^ /something/else break;
}
Gostaria da URL raiz
http://www.example.com
para redirecionar para
http://www.example.com/something/else
Isso ocorre porque alguns plugins WP estranhos sempre definem um cookie no URL base, o que não me deixa armazená-lo em cache.
Eu tentei esta diretiva:
location / {
rewrite ^ /something/else break;
}
Mas 1) não há redirecionamento e 2) as páginas começam a gravar mais de 1.000 solicitações para o meu servidor. Com este aqui:
location / {
rewrite ^ http://www.example.com/something/else break;
}
O Chrome reporta um loop de redirecionamento.
Qual é o regexp correto para usar?
Isso deve fazer o trabalho:
location / {
rewrite ^/$ /something/else break;
}
A % declaração derewrite
executa uma reconfiguração interna por padrão, a menos que o destino seja um URL absoluto ou você defina a redirect
ou permanent
flags. Algo como isso retornaria um redirecionamento HTTP para o cliente:
rewrite ^/$ /something/else redirect;
Ou você pode fazer isso:
location = / {
rewrite ^/$ http://example.com/an/other/path;
}
O Nginx envia um redirecionamento HTTP 302 para o cliente automaticamente quando o URL de reescrita começa com o esquema "http".