chmorgan / libesphttpd

Libesphttpd - web server for ESP8266 / ESP32
Mozilla Public License 2.0
128 stars 45 forks source link

Redirect subdir with trailing slash. #106

Open phatpaul opened 2 months ago

phatpaul commented 2 months ago

httpd-espfs.c :: tryOpenIndex() already tries to find and serve the content of index.html if the client requests a sub-directory. This can result in the browser showing the content of /hello/index.html, but the browser's URL is http://blahblah/hello

If /hello/ is a directory, GET /hello should redirect to GET /hello/ to maintain relative paths for the browser.

We should automatically add a trailing slash so clients can properly resolve relative paths. I.e. GET /hello should redirect to /hello/ because /hello/index.html might require ./app.js, which should resolve to /hello/app.js, NOT /app.js

The exception to this is the root directory does not require a trailing slash. I.e. GET myapp.com can serve /index.html