Nginx: перенаправить https://www.domain.tld/target на https://nocache.domain.tld/destination

У меня есть конфигурация сервера Cloudflare/Nginx(v1.8.0)/Apache с большим количеством кэширования.

Цель состоит в том, чтобы кэшировать основной домен, но разрешить доступ к сайту через поддомен, на котором обойдено все кэширование.

Итак, я ищу общий способ перенаправления " https://www.domain.tld/target" на " https://nocache.domain.tld/destination"

Простого совпадения местоположения с request_uri достаточно для варианта домена без www, но если запрос приходит через поддомен www, как это делают многие сайты, он перенаправляет на nocache.www.domain.tld, который не существовать.

Я пробовал все виды разных способов, чтобы удалить "www". подстрока, но, кажется, ничего не работает.

РЕДАКТИРОВАТЬ

Вот моя неработающая конфигурация сервера Nginx:

server {

  listen 80 default_server;

  server_name localhost;

  set $PROXY_DOMAIN_OR_IP $host;

  if ( $request ~* ".*(www\.)(.*)\/target" ) {
     set $host_without_www $2;
     return 302 $scheme://nocache.${host_without_www}\/destination;
  }

2 ответа

Решение

Наконец-то все заработало следующим образом:

location ~* "/target" {
  if ( $host ~* "www\.(.*)" ) {
    return 302 https://nocache.$1/destination;
  }

  return 302 https://nocache.$host/destination;
}

302 были для тестирования и будут изменены на постоянные перенаправления.

Спасибо всем, кто откликнулся.

Вот блок местоположения, который вы можете использовать для перенаправления

server {
    server_name www.domain.tld;
    location /target {
        rewrite /target(.*)$ /destination$1 last;
        return 301 https://nocache.domain.tld$request_uri;   
    }
}
  • Имя_сервера ограничивает перенаправление www.domain.tld домен
  • Расположение совпадает со всеми URI, которые начинаются с /target
  • директива rewrite преобразует /target в /destination и сохраняет все, что появляется после
  • Возврат толкает перенаправление на другой домен
  • Вы также можете сделать это с пропуском прокси, если вы не хотите, чтобы пользователь был перенаправлен
Другие вопросы по тегам