add: $request_file

This commit is contained in:
Talyx
2022-02-20 20:00:03 +03:00
parent 4f0173ea08
commit 9fbb6cf91b
4 changed files with 33 additions and 16 deletions

View File

@@ -118,7 +118,16 @@ void Response::setCacheControl(void)
void Response::setLocation(void)
{
if (_code == 301)
_locationSTR = _location->redirect[_code];
{
_redirect_location = _location->redirect[_code];
unsigned long pos = _redirect_location.rfind("$request_file");
if (pos != std::string::npos)
{
_redirect_location.erase(pos);
_redirect_location += _request_file;
}
_locationSTR = _redirect_location;
}
}
serverListen Response::getListen()
@@ -237,6 +246,7 @@ std::string Response::getFullURI(void)
int pos = 0;
pos = _request.getURI().rfind("/");
tmp = _request.getURI().substr(pos);
_request_file = tmp;
if (!_location->uploadDir.empty())
_upload_dir = _location->uploadDir + tmp;
tmp = _location->root + tmp;
@@ -244,6 +254,7 @@ std::string Response::getFullURI(void)
else
{
tmp = _request.getURI().substr(len);
_request_file = tmp;
if (!_location->uploadDir.empty())
_upload_dir = _location->uploadDir + tmp;
tmp = _location->root + tmp;
@@ -380,6 +391,8 @@ void Response::generate2(serverListen &l)
bool Response::isRedirect()
{
if (_location == NULL)
return (false);
if (!_location->redirect.empty())
{
_code = 301;

View File

@@ -22,6 +22,9 @@ private:
serverListen _hostPort;
std::string _method;
std::string _request_file;
std::string _redirect_location;
private:
std::string _contentType;
ssize_t _contentLength;