Nginx rewrite without redirect
I want url domain.com/foo-111
to load contents from directory /bar/111
but not change url.
I created a rewrite rule but instead of loading contents of proper directory, it 301 redirects to domain.com/bar/111
My server config
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
is trying to add a trailing /
to turn the URI into the correct format for a directory spec. Add the /
in your rewrite
so that nginx
doesn't have to. Try this:
rewrite ^/foo-(.*?)/?$ /bar/$1/ break;