Thank you for that. The code below authenticates for all folders and cgi scripts work well as desired
Any comments on correctness? .............................................................................................................................. # $OpenBSD: httpd.conf,v 1.18 2018/03/23 11:36:41 florian Exp $ server "xyz.co.ke" { listen on * port 80 listen on :: port 80 location "/.well-known/acme-challenge/*" { root "/acme" root strip 2 } location * { block return 302 "https://$HTTP_HOST$REQUEST_URI" } } server "xyz.co.ke" { listen on * tls port 443 listen on :: tls port 443 hsts tls { certificate "/etc/ssl/xyz.co.ke.fullchain.pem" key "/etc/ssl/private/xyz.co.ke.key" } location "/.well-known/acme-challenge/*" { root "/acme" root strip 2 } authenticate "Staff Only" with "/htpasswds" root "/xyz.co.ke" location "/public/*" { directory auto index } location "/xyz/*" { root "/" fastcgi } } ................................................................................................................................ > On 10/5/18, trondd <tro...@kagu-tsuchi.com> wrote: >> On Thu, October 4, 2018 12:54 pm, Kihaguru Gathura wrote: >>> Hi, >>> >>> For the following httpd setup, cgi scripts give a 403 Page not found >>> on browser. However after removing the line: >>> >>> location "/*" { >>> authenticate "Staff Only" with "/htpasswds" >>> } >>> >>> cgi scripts run fine but no authentication for document root of course. >>> >>> Please explain the situation. >>> >>> >>> >>> ....................................................................................................................... >>> # $OpenBSD: httpd.conf,v 1.18 2018/03/23 11:36:41 florian Exp $ >>> >>> server "xyz.co.ke" { >>> listen on * port 80 >>> listen on :: port 80 >>> location "/.well-known/acme-challenge/*" { >>> root "/acme" >>> root strip 2 >>> } >>> location * { >>> block return 302 >>> "https://$HTTP_HOST$REQUEST_URI" >>> } >>> } >>> >>> server "xyz.co.ke" { >>> listen on * tls port 443 >>> listen on :: tls port 443 >>> hsts >>> tls { >>> certificate "/etc/ssl/xyz.co.ke.fullchain.pem" >>> key "/etc/ssl/private/xyz.co.ke.key" >>> } >>> location "/.well-known/acme-challenge/*" { >>> root "/acme" >>> root strip 2 >>> } >>> root "/xyz.co.ke" >>> location "/*" { >>> authenticate "Staff Only" with "/htpasswds" >>> } >>> >>> location "/public/*" { >>> directory auto index >>> } >>> location "/xyz/*" { >>> root "/" >>> fastcgi >>> authenticate "Staff Only" with "/htpasswds" >>> } >>> } >>> .............................................................................................................. >>> >>> Thank you, >>> >>> Regards >>> >>> Kihaguru. >>> >> >> Move the location "/*" block to the bottom of the server block after the >> specific paths. >> >> >> location path {...} >> Specify server configuration rules for a specific location. The path >> argument will be matched against the request path with shell globbing >> rules. In case of multiple location statements in the same context, >> the first matching location statement will be put into effect, while >> all later ones will be ignored. Therefore it is advisable to match for >> more specific paths first and for generic ones later on. >> >> >