Seeking help with obscure trouble with redirects

Dear all,

I’m having trouble getting 301 redirects to work as intended with Kirby. I’m trying to redirect www.arzt-bad-godesberg.de to arzt-bad-godesberg.de and likewise http:// to https://. While the https:// part works the www redirect doesn’t. I’m in touch with Mittwald support as I’m uncertain if it’s related to server config but their answers aren’t very helpful (they don’t even answer if mod_rewrite is active). I suspect Kirby as the predecessor was a static site hosted on the same server and redirects worked just fine.

However, here comes my structured report:

Intended behaviour?

What happens instead?

Steps to reproduce?

  • None, redirects switched off at this time because site is already live

Environment information?

What have you already tried to solve the problem?

  • setting the redirect in the customer service panel instead of .htaccess
  • setting RewriteBase / on and off
  • switching back to the old installation and set the same redirects there (works fine)
  • upgrade to PHP 7.4.
  • rearrange the order of statements in .htaccess (www. before https and vice versa)

Any help or clue is much appreciated. Thanks in advane. This is my current .htaccess

# rewrite www.example.com → example.com
<IfModule mod_rewrite.c>
      RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
      RewriteRule ^ %{ENV:PROTO}://%1%{REQUEST_URI} [R=301,L]
</IfModule>

# force https
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{HTTPS} !=on
   RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>


# Kirby .htaccess
# revision 2020-06-15

# rewrite rules
<IfModule mod_rewrite.c>

# enable awesome urls. i.e.:
# http://yourdomain.com/about-us/team
RewriteEngine on


# make sure to set the RewriteBase correctly
# if you are running the site in a subfolder;
# otherwise links or the entire site will break.
#
# If your homepage is http://yourdomain.com/mysite,
# set the RewriteBase to:
#
# RewriteBase /mysite

# In some environments it's necessary to
# set the RewriteBase to:
#
# RewriteBase /

# block files and folders beginning with a dot, such as .git
# except for the .well-known folder, which is used for Let's Encrypt and security.txt
RewriteRule (^|/)\.(?!well-known\/) index.php [L]

# block all files in the content folder from being accessed directly
RewriteRule ^content/(.*) index.php [L]

# block all files in the site folder from being accessed directly
RewriteRule ^site/(.*) index.php [L]

# block direct access to Kirby and the Panel sources
RewriteRule ^kirby/(.*) index.php [L]

# make site links work
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php [L]

</IfModule>

# pass the Authorization header to PHP
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

# compress text file responses
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

Actually this was caused by a very persistent cache. Solved it.