Мне нужен корневой URL
http://www.example.com
перенаправить на
http://www.example.com/something/else
Это связано с тем, что какой-то странный плагин WP всегда устанавливает cookie на базовом URL-адресе, что не позволяет мне его кешировать.
Я пробовал эту директиву:
location / {
rewrite ^ /something/else break;
}
Но 1) перенаправления нет и 2) страницы начинают отправлять на мой сервер более 1000 запросов. С этим:
location / {
rewrite ^ http://www.example.com/something/else break;
}
Chrome сообщает о цикле перенаправления.
Какое правильное регулярное выражение использовать?
Вы действительно хотите соответствовать именно корневой URL в блоке местоположения, а не "абсолютно все":
location = / {
rewrite ^ /something/else break;
}
Это должно сработать:
location / {
rewrite ^/$ /something/else break;
}
В rewrite
заявление выполняет внутреннюю перезапись по умолчанию, если целевой не является абсолютным URL-адресом или вы не установили redirect
или permanent
флаги. Что-то вроде этого вернет клиенту HTTP-перенаправление:
rewrite ^/$ /something/else redirect;
Или вы можете сделать это:
location = / {
rewrite ^/$ http://example.com/an/other/path;
}
Nginx автоматически отправляет клиенту перенаправление HTTP 302, когда перезаписываемый URL-адрес начинается со схемы http.