Opened 12 years ago
Closed 12 years ago
#211 closed defect (invalid)
“autoindex $var” does not work
Reported by: | Roman Odaisky | Owned by: | somebody |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | nginx-core | Version: | 1.2.x |
Keywords: | Cc: | ||
uname -a: | Linux pogekone.qwertty.com 2.6.32-5-amd64 #1 SMP Mon Mar 7 21:35:22 UTC 2011 x86_64 GNU/Linux | ||
nginx -V: |
nginx version: nginx/1.2.1
TLS SNI support enabled configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-pcre-jit --with-debug --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/nginx-auth-pam --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/chunkin-nginx-module --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/headers-more-nginx-module --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/nginx-development-kit --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/nginx-echo --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/nginx-http-push --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/nginx-lua --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/nginx-upload-module --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/nginx-upload-progress --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/nginx-upstream-fair --add-module=/home/roma/data/soft/source/nginx-1.2.1/debian/modules/nginx-dav-ext-module |
Description
I expected to be able to use variables as parameters of any directive. Instead, some of them, e. g. autoindex, require literal “on” or “off”.
It should be possible to use variables everywhere except directives that are evaluated once at Nginx startup.
map $host $per_host_autoindex { ... } server { server_name ~...; location / { autoindex $per_host_autoindex; } }
Note:
See TracTickets
for help on using tickets.
The "autoindex" directive, as well as many other directives, doesn't support variables. If a directive supports variables, it's explicitly documented.
Note well that variables support require additional code and additional run-time processing, and it makes config validation impossible. So there should be a good reason for the directive to support variables, even if it's possible from theoretical point of view.
In case of the use case outlined above you probably want to use separate server blocks instead (at least two, one for virtual hosts with autoindex enabled, and one for ones with autoindex disabled).