Hi, Just updating myself, I realized I don't even need any weird setup, just change the fallback location from
location @something { } into location = /.something { } and set index parameter to index index.html /.something; It works because the last element of the list can be an absolute path as mentioned in documentation. On Mon, Oct 10, 2016, at 12:56, Edho Arief wrote: > I somehow can't make this scenario work: > > root structure: > /a/index.html > /b/ <-- no index.html > > accessing: > 1. site.com/a -> redirect to site.com/a/ -> show /a/index.html > 2. site.com/b -> redirect to site.com/b/ -> show @fallback > > > Using > > try_files $uri $uri/index.html @fallback; > > doesn't work quite well because #1 becomes this instead: > > 1. site.com/a -> show /a/index.html > > and breaks relative path javascript/css files (because it's `/a` in > browser, not `/a/`). > > And using > > try_files $uri @fallback; > > Just always show @fallback for both scenarios. > > Whereas > > try_files $uri $uri/ @fallback; > > Always return 403 for #2 because the directory exists and there's no > index. > > As a side note, > > error_page 404 = @fallback; > > Wouldn't work because as mentioned in the previous one, it returns 403 > for #2 (directory exists, no index), not 404. > > Is there any way to do it without specifying separate location for each > of them? _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx