Opened 10 years ago
Closed 10 years ago
#668 closed defect (invalid)
location with spaces in URI + alias fails
Reported by: | https://stackoverflow.com/users/573152/bernard-rosset | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | nginx-core | Version: | 1.6.x |
Keywords: | Cc: | ||
uname -a: | Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 GNU/Linux | ||
nginx -V: |
nginx version: nginx/1.6.2
built by gcc 4.7.2 (Debian 4.7.2-5) TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_spdy_module --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed' --with-ipv6 |
Description
When using the following configuration:
location "/here you go/" { alias "/foobar"; }
Hitting http://example.org/here you go/ fails with the following error:
opendir() "/fooba" failed (2: No such file or directory)
However, using the following configuration (same, without the ending slash):
location "/here you go" { alias "/foobar"; }
Everything works perfectly.
Change History (2)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
This is a result of how alias works (it just replaces matching part of the URI) and how nginx works with directory indexes (it just drops the last character of the file name if URI ends with "/"). Fix is to add a trailing "/" to the path in "alias" if you are aliasing a directory:
location /uri/ { alias /path/to/dir/; }
Not at all related to spaces.
Note:
See TracTickets
for help on using tickets.
The URL was badly parsed:
http://example.org/here you go/
or http://example.org/here%20you%20go/