I try to setup WFS3 Endpoint which is built in QGIS Server. I tried QGIS versions 3.22, 3.28 and also 3.30. All versions behave the same. So I might miss a step here.
QGIS Server runs like it is described here: https://docs.qgis.org/3.28/en/docs/server_manual/containerized_deployment.html#simple-docker-images
So basically I do have a container with NGINX which talks to the container of QGIS Server over fastcgi_pass.
I only changed it to the following url pattern in NGINX to:
<host>/wfs3/<project-name>/collections/...
The project-name is put into the QGIS_PROJECT_FILE fastcgi variable. It works correctly. If I point to my URLS directly, I can receive what I expect. However, the links contained in the response htmls or jsons are missing the project-name part and therefore are not working. I see in the QGIS logs that the urls with the project-name are recognized but somehow are not handled.
Example URL called: http://localhost:8080/wfs3/test-project/collections/test-layer
The HTML response contains URLS like (missing test-project): http://localhost:8080/wfs3/collections/test-layer/items
I want to avoid the usage map url-parameter because I do not like to expose internal file paths to the web. I recognized that this parameter is contained in the linked URLS when I use it this way.
I tried several Headers and fastcgi-params without success. Especially those mentioned here. But they only seem to work for the classical WMS/WFS endpoints. Not the OGCAPIF WFS3 endpoint (which are working correctly, by the way).
Does anybody have a hint for me how to achieve that? Any parameter/header I can set dynamically on request to tell QGIS server it runs in a subpath of the domain?