From d1b392d2a2137e3c647ae5f4b498407c1162d315 Mon Sep 17 00:00:00 2001 From: whaffman Date: Mon, 20 Oct 2025 15:33:55 +0200 Subject: [PATCH] match index in URI --- config/default.conf | 30 +++++++++--------------------- webserv/handler/URI.cpp | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/config/default.conf b/config/default.conf index 27799f6..3b72c66 100644 --- a/config/default.conf +++ b/config/default.conf @@ -1,6 +1,12 @@ -autoindex on -error_page 400 ./htdocs/error_pages/400.html -error_page 500 ./htdocs/error_pages/500.html +error_page 400 ./htdocs/error_pages/400.html; +error_page 404 ./htdocs/error_pages/404.html; +error_page 404 ./htdocs/error_pages/404.html; +error_page 403 ./htdocs/error_pages/403.html; +error_page 405 ./htdocs/error_pages/405.html; +error_page 413 ./htdocs/error_pages/413.html; +error_page 500 ./htdocs/error_pages/500.html; +error_page 502 ./htdocs/error_pages/502.html; +error_page 504 ./htdocs/error_pages/504.html; server { listen 8080; @@ -61,15 +67,6 @@ server { root ./htdocs/site-2/; index index.html index2.htm; - error_page 400; - error_page 403 /403.html; - error_page 404 /404.html; - error_page 405 /405.html; - error_page 413 /413.html; - error_page 500 /500.html; - error_page 502 /502.html; - error_page 504 /504.html; - client_max_body_size 1M; location / { @@ -104,15 +101,6 @@ server { root ./htdocs/site-3/; index index.html index2.htm; - error_page 400; - error_page 403 /403.html; - error_page 404 /404.html; - error_page 405 /405.html; - error_page 413 /413.html; - error_page 500 /500.html; - error_page 502 /502.html; - error_page 504 /504.html; - client_max_body_size 1M; location / { diff --git a/webserv/handler/URI.cpp b/webserv/handler/URI.cpp index 25bf6c9..72269e2 100644 --- a/webserv/handler/URI.cpp +++ b/webserv/handler/URI.cpp @@ -110,6 +110,20 @@ void URI::parseFullpath() return; } } + if (baseName_.empty() && FileUtils::isDirectory(fullPath_)) + { + for (const auto &index : config_->get>("index").value_or(std::vector())) + { + std::string indexPath = FileUtils::joinPath(fullPath_, index); + if (FileUtils::isFile(indexPath)) + { + baseName_ = index; + break; + } + } + } + Log::debug("URI parseFullpath results", + {{"dir", dir_}, {"baseName", baseName_}, {"pathInfo", pathInfo_}}); fullPath_ = FileUtils::joinPath(dir_, baseName_); }