--- httpd.c 23 Mar 2006 01:35:03 -0000 1.92
+++ httpd.c 5 Aug 2006 19:08:00 -0000
@@ -834,6 +834,7 @@
int fd=-1;
char* accept;
time_t ims;
+ char* furl=url;
while (url[0]=='/') ++url;
getmimetype(url,explicit);
{
@@ -856,8 +857,17 @@
}
if ((fd=open(url,O_RDONLY))>=0) {
if (fstat(fd,&st)) goto bad;
- /* no directories */
- if (S_ISDIR(st.st_mode)) goto bad;
+ /* no directories: redirect to url + '/' */
+ if (S_ISDIR(st.st_mode)) {
+ if (fd>=0) close(fd);
+ redirectboilerplate();
+ buffer_put(buffer_1,furl,strlen(furl));
+ buffer_puts(buffer_1,"/\r\n\r\n");
+ retcode=301;
+ dolog(0);
+ buffer_flush(buffer_1);
+ exit(0);
+ }
/* see if the peer accepts MIME type */
/* see if the document has been changed */
ims=parsedate(header(buf,buflen,"If-Modified-Since"));