Nginx reescreve sem redirecionar

3

Eu quero que o url domain.com/foo-111 carregue o conteúdo do diretório /bar/111 , mas não mude o URL.

Eu criei uma regra de reescrita, mas em vez de carregar o conteúdo do diretório correto, ela 301 redireciona para domain.com/bar/111

Minha configuração do servidor

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;
  }
}
    
por Viacheslav 12.03.2016 / 15:02

1 resposta

5

nginx está tentando adicionar um / à direita para transformar o URI no formato correto para uma especificação de diretório. Adicione o / no seu rewrite para que nginx não precise. Tente isto:

 rewrite ^/foo-(.*?)/?$ /bar/$1/ break;
    
por 12.03.2016 / 15:36

Tags