Publii vs. CORS
Als Ursache des Problems in Darstellung beim Aufruf ohne „www.“ repariert identifizierte ich Cross-Origin Resource Sharing (CORS) - HTTP | MDN.
Eine mögliche Lösung wäre nun gewesen, in Publii unter Server > Settings auf relative URLs umzuschalten, aber dort gibt es diesen Hinweis:
Note: while using relative URLs, some features like Open Graph tags, sitemaps, RSS feeds, JSON feeds etc. will be disabled.
Und auf die Sitemap sowie die Feeds will ich nicht verzichten.
Also habe ich nach einer anderen Lösung gesucht und sie auch gefunden: Das gute alte mod_rewrite in .htaccess
Aber wie das manchmal so ist, will man es dann ganz genau wissen und stößt im Internet dabei auf alle möglichen und teilweise falschen oder widersprüchlichen Aussagen, so dass man dann ziemlich lange an einem Thema sitzt. Letztlich habe ich folgende Anweisungen in meine /.htaccess eingefügt:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*) https://www.%{HTTP_HOST}/$1 [NE,R=permanent,L]
</IfModule>
- Zeile: Prüfe, ob das Umschreibe-Modul in Apache überhaupt geladen ist
- Zeile: Erlaube das Umschreiben generell
- Zeile: Prüfe, ob die Variable HTTP_HOST, ohne Berücksichtigung von Groß- und Kleinschreibung ([NC]), mit www. beginnt
- Zeile:
- Nimm im Erfolgsfall eine Weiterleitung auf https://www.Domänenname vor
- Hänge alle Parameter der ursprünglichen Anfrage an (/$1)
- Vermeide bei den Parametern das Umwandeln von Sonderzeichen (z. B. „&“ oder „?“) in Hexcodes (NE)
- Die Weiterleitung (R) ist dauerhaft (= HTTP-Statuscode 301)
- Führe keine weitere Regel aus dem Regelsatz aus (L). Das ist vorbeugend, falls ich später weitere Regeln hinzufügen sollte.
- Zeile: Ab Zeile 6, darf es wieder ohne Umschreibe-Modul weitergehen
Info: Um ein explizites Umschreiben aller HTTP-Anfragen auf HTTPS (z. B. von http://www.robertriebisch.de/ auf https://www.robertriebisch.de/) brauche ich mich nicht selbst zu kümmern, weil das bei meinen Hoster bereits automatisch geschieht.
Quellen:
- https://www.lima-city.de/hilfe/von-www-domain-de-auf-domain-de-umleiten
- https://www.redirect301.de/webadresse-immer-mit-www/
- https://faq.hosterplus.de/webhosting/3/47-domain,ohne,www,auf,www,umleiten.html
- https://www.contality.de/domain-mit-www-oder-ohne/
- https://www.goldbergsoftware.de/articles/2022-09-17-umleitung-htaccess-www
- https://www.redim.de/blog/nicht-www-auf-www-umleiten
- https://seoagentur-hamburg.com/blog/htaccess-weiterleitungen/
- https://www.webhosting-franken.de/faq/mod-rewrite-benutzen-beispiele
- https://wiki.selfhtml.org/wiki/Webserver/htaccess/Umleitungen_mit_mod_rewrite
- https://httpd.apache.org/docs/2.4/rewrite/remapping.html#canonicalhost
- https://httpd.apache.org/docs/2.4/rewrite/
- https://httpd.apache.org/docs/2.4/rewrite/intro.html
- https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_r
- https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html
- https://httpd.apache.org/docs/2.4/expr.html
- https://serverfault.com/questions/968818/escaping-chars-in-htaccess#968916