Назад | Перейти на главную страницу

Перезапись Nginx без редиректа

Я хочу URL domain.com/foo-111 загрузить содержимое из каталога /bar/111 но не менять URL.

Я создал правило перезаписи, но вместо загрузки содержимого соответствующего каталога оно 301 перенаправляет на domain.com/bar/111

Конфигурация моего сервера

server {
  listen 80;
  server_name domain.com;

  location / {
      root /var/www/domain.com;
      index index.html index.htm;
      rewrite ^/foo-(.*)$ /bar/$1 break;
      try_files $uri $uri/ =404;
  }
}

nginx пытается добавить конечный / чтобы преобразовать URI в правильный формат для спецификации каталога. Добавить / в твоем rewrite так что nginx не обязательно. Попробуй это:

 rewrite ^/foo-(.*?)/?$ /bar/$1/ break;