diff --git a/python/server/auto_generated/qgsfcgiserverrequest.sip.in b/python/server/auto_generated/qgsfcgiserverrequest.sip.in index c1c4eeed64f..56f122b0306 100644 --- a/python/server/auto_generated/qgsfcgiserverrequest.sip.in +++ b/python/server/auto_generated/qgsfcgiserverrequest.sip.in @@ -38,9 +38,11 @@ Returns true if an error occurred during initialization :return: the request url -Subclasses may override in case the original URL needs to be -returned instead of the rewritten one (i.e. from a web server -rewrite module). +Overrides base implementation because FCGI is typically behind +a proxy server and QGIS Server will see a rewritten QUERY_STRING. +FCGI implementation stores the REQUEST_URI (which is the URL seen +by the proxy before it gets rewritten) and returns it instead of +the rewritten one. %End diff --git a/src/server/qgsfcgiserverrequest.cpp b/src/server/qgsfcgiserverrequest.cpp index c1477206f67..51d17168b8f 100644 --- a/src/server/qgsfcgiserverrequest.cpp +++ b/src/server/qgsfcgiserverrequest.cpp @@ -135,7 +135,7 @@ QByteArray QgsFcgiServerRequest::data() const QUrl QgsFcgiServerRequest::url() const { - return mOriginalUrl; + return mOriginalUrl.isEmpty() ? QgsServerRequest::url() : mOriginalUrl; } // Read post put data diff --git a/src/server/qgsfcgiserverrequest.h b/src/server/qgsfcgiserverrequest.h index 0ddea643af9..8f6664e7805 100644 --- a/src/server/qgsfcgiserverrequest.h +++ b/src/server/qgsfcgiserverrequest.h @@ -45,9 +45,11 @@ class SERVER_EXPORT QgsFcgiServerRequest: public QgsServerRequest /** * \returns the request url * - * Subclasses may override in case the original URL needs to be - * returned instead of the rewritten one (i.e. from a web server - * rewrite module). + * Overrides base implementation because FCGI is typically behind + * a proxy server and QGIS Server will see a rewritten QUERY_STRING. + * FCGI implementation stores the REQUEST_URI (which is the URL seen + * by the proxy before it gets rewritten) and returns it instead of + * the rewritten one. */ QUrl url() const override;