• Our team is looking to connect with folks who use email services provided by Plesk, or a premium service. If you'd like to be part of the discovery process and share your experiences, we invite you to complete this short screening survey. If your responses match the persona we are looking for, you'll receive a link to schedule a call at your convenience. We look forward to hearing from you!
  • We are looking for U.S.-based freelancer or agency working with SEO or WordPress for a quick 30-min interviews to gather feedback on XOVI, a successful German SEO tool we’re looking to launch in the U.S.
    If you qualify and participate, you’ll receive a $30 Amazon gift card as a thank-you. Please apply here. Thanks for helping shape a better SEO product for agencies!
  • The BIND DNS server has already been deprecated and removed from Plesk for Windows.
    If a Plesk for Windows server is still using BIND, the upgrade to Plesk Obsidian 18.0.70 will be unavailable until the administrator switches the DNS server to Microsoft DNS. We strongly recommend transitioning to Microsoft DNS within the next 6 weeks, before the Plesk 18.0.70 release.
  • The Horde component is removed from Plesk Installer. We recommend switching to another webmail software supported in Plesk.

"autoindex on" only working for full website, not selectively

Bitpalast

Plesk addicted!
Plesk Guru
TITLE:
"autoindex on" only working for full website, not selectively
PRODUCT, VERSION, OPERATING SYSTEM, ARCHITECTURE:
Plesk Onyx, latest MU, CentOS 7.3, 64-Bit
PROBLEM DESCRIPTION:
STEPS TO REPRODUCE:
1) Create a subscription or add-on domain.
2) Create a subdirectory "download" in that domain and upload some files. Do not create an index-file for that directory.
3) Plesk GUI > Subscription > Websites & Domains > Apache & Nginx directives > Enter

location /download {
autoindex on;
}

4) Save and restart web server (Nginx)​
ACTUAL RESULT:
Directory index forbidden / 403 error when opening /download-directory.​
EXPECTED RESULT:
Directory listing​
ANY ADDITIONAL INFORMATION:
The same Nginx directive with
autoindex on;
not limited to a "location" works, but it then applies to all website directories.
YOUR EXPECTATIONS FROM PLESK SERVICE TEAM:
Confirm bug
 
Last edited:
Geeeee, I cannot test that much as it would be required ...

I am seeing that the behavior only occurs on the Onyx systems, not on the 12.5.
 
Hi.

'autoindex' directive works for separate directories.
  1. Create subscription 'autoindex.tld'.
  2. Plesk -> Subscriptions -> Subscription 'autoindex.tld' -> Apache & nginx Settings -> Additional nginx directives -> Enter follow:
    Code:
    location /download/
    { autoindex on; }
    .
    Click 'Ok' or 'Apply'.
    See 1_nginx_directives.png.
  3. Create folder 'download' under this subscription and fill it with some files. No index.* files created. See 2 download directory.png.
  4. Open URL https://autoindex.tld/download/ (or http) in the browser. Directory listing will be displayed. See 3 download directory listing.png
Verified on:
Product version: Plesk Onyx Update #21
OS version: CentOS 7.2.1511
Architecture: 64-bit
 

Attachments

  • 1_nginx_directives.png
    1_nginx_directives.png
    19.4 KB · Views: 16
  • 2 download directory.png
    2 download directory.png
    32.7 KB · Views: 12
  • 3 download directory listing.png
    3 download directory listing.png
    14.6 KB · Views: 11
It doesn't work here. I tried /download and /download/, with and without proxy mode and also tried / (document root), all with restarting web server in between tests. All tests return a 403 error from Nginx. All files are accessible, but directory index does not work. nginx.conf and vhost_nginx.conf both look logically correct, see code below. Could this be an issue with different versions of Nginx?

nginx.conf:
Code:
        server_name www.domain.tld;
        server_name ipv4.domain.tld;
        server_name "domain.tld.123-123-123-123.host.name.tld";

        client_max_body_size 128m;

        proxy_read_timeout 360;

        root "/var/www/vhosts/domain.tld/httpdocs";
        access_log "/var/www/vhosts/system/domain.tld/logs/proxy_access_log";
        error_log "/var/www/vhosts/system/domain.tld/logs/proxy_error_log";

        location ~ ^/~(.+?)(/.*?\.php)(/.*)?$ {
                alias /var/www/vhosts/domain.tld/web_users/$1/$2;
                fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_pass "unix:///var/www/vhosts/system/domain.tld/php-fpm.sock";
                include /etc/nginx/fastcgi.conf;
        }

        location ~ \.php(/.*)?$ {
                fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_pass "unix:///var/www/vhosts/system/domain.tld/php-fpm.sock";
                include /etc/nginx/fastcgi.conf;
        }

        location ~ /$ {
                index index.html index.cgi index.pl index.php index.xhtml index.htm index.shtml;
        }

        include "/var/www/vhosts/system/domain.tld/conf/vhost_nginx.conf";
}

and vhost_nginx.conf:
Code:
location /subdir
{ autoindex on; }

Directory tree:
Code:
drwxr-x---  3 tester psaserv   4096 Mar 31 12:59 httpdocs
--> 
drwxr-xr-x 2 tester psacln 4096 Mar 31 13:12 subdir
-->--> -rw-r--r-- 1 tester psacln     4 Mar 31 13:00 test-subdir.txt
-rw-r--r-- 1 tester psacln    5 Mar 31 12:58 test.txt
 
I repeated this configuration on the our demo server, all works fine...

Some details which I found:
  1. nginx version:
    Code:
    # nginx -v
    nginx version: nginx/1.11.10
  2. I checks that Subscriptions -> Subscription name -> Apache & nginx Settings -> nginx settings -> Proxy mod is enabled.
Maybe nginx version is important? Your config files really looks logically correct.
 
I can confirm that this issue is still present in Plesk Onyx Version 17.5.3

It looks like line below in nginx.conf prevents autoindex on; from working.
Code:
location ~ /$ {
    index index.html index.cgi index.pl index.php index.xhtml index.htm index.shtml;
}

If I place manually my "location" with autoindex on; before this section it works.

Any suggestions ?
 
Last edited:
I can confirm that this issue is still present in Plesk Onyx Version 17.5.3

It looks like line below in nginx.conf prevents autoindex on; from working.
Code:
location ~ /$ {
    index index.html index.cgi index.pl index.php index.xhtml index.htm index.shtml;
}

If I place manually my "location" with autoindex on; before this section it works.

Any suggestions ?

The following directive will work correctly if placed to additional directives:
Code:
location ^~ /directory/ {
    autoindex on;
}

The downside is—all sub-directories of /directory will also become "traverse-able" and all RegExp rules will not work for these locations and files.

It works because ^~ has a priority over any RegExp directives, and ~ here is a plain RegExp directive.
 
Back
Top