Kirby 4 behind Reverse Proxy

Hello everyone,

today I set up the test environment. When I link to the css template, it replaces the path with the local ip and it doesn’t load when I visit the subdomain.

I also get the following error when I use <?= $site-url() ?> in code:
Unsupported operand types: Kirby\Cms\Site - string

I think both are related to a misconfiguration of my Apache-Reverse-Proxy.

Maybe someone can give me some food for thought.

Best regards
Chris

Apache-Reverse-Proxy:

<VirtualHost *:80>
        ServerName test.xyz.de
        ServerAlias test.xyz.de
        Redirect permanent / https://test.xyz.de/
</VirtualHost>

<VirtualHost *:443>
        ServerName test.xyz.de
        ServerAlias test.xyz.de
        SSLProxyEngine On
        ProxyPass / http://###.###.###.###/
        ProxyPassReverse / http://###.###.###.###/
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/test.xyz.de/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/test.xyz.de/privkey.pem
</VirtualHost>

Kirby-Webserver:

<VirtualHost *:80>
        ServerAdmin test@xyz.de
        DocumentRoot /var/www/html/

        <Directory /var/www/html/>
                Options FollowSymlinks
                AllowOverride All
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <Directory /var/www/html/>
                RewriteEngine on
                RewriteBase /
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteRule ^panel/(.*) panel/index.php [L]
        </Directory>
</VirtualHost>

You can set the URL manually for the reverse proxy setups:

That was the crucial clue. The section “URL override for the production deployment” was helpful. Thanks alot.