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>
  1. Zeile: Prüfe, ob das Umschreibe-Modul in Apache überhaupt geladen ist
  2. Zeile: Erlaube das Umschreiben generell
  3. Zeile: Prüfe, ob die Variable HTTP_HOST, ohne Berücksichtigung von Groß- und Kleinschreibung ([NC]), mit www. beginnt
  4. Zeile:
    1. Nimm im Erfolgsfall eine Weiterleitung auf https://www.Domänenname vor
    2. Hänge alle Parameter der ursprünglichen Anfrage an (/$1)
    3. Vermeide bei den Parametern das Umwandeln von Sonderzeichen (z. B. „&“ oder „?“) in Hexcodes (NE)
    4. Die Weiterleitung (R) ist dauerhaft (= HTTP-Statuscode 301) 
    5. Führe keine weitere Regel aus dem Regelsatz aus (L). Das ist vorbeugend, falls ich später weitere Regeln hinzufügen sollte.
  5. 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:

  1. https://www.lima-city.de/hilfe/von-www-domain-de-auf-domain-de-umleiten
  2. https://www.redirect301.de/webadresse-immer-mit-www/
  3. https://faq.hosterplus.de/webhosting/3/47-domain,ohne,www,auf,www,umleiten.html
  4. https://www.contality.de/domain-mit-www-oder-ohne/
  5. https://www.goldbergsoftware.de/articles/2022-09-17-umleitung-htaccess-www
  6. https://www.redim.de/blog/nicht-www-auf-www-umleiten
  7. https://seoagentur-hamburg.com/blog/htaccess-weiterleitungen/
  8. https://www.webhosting-franken.de/faq/mod-rewrite-benutzen-beispiele
  9. https://wiki.selfhtml.org/wiki/Webserver/htaccess/Umleitungen_mit_mod_rewrite
  10. https://httpd.apache.org/docs/2.4/rewrite/remapping.html#canonicalhost
  11. https://httpd.apache.org/docs/2.4/rewrite/
  12. https://httpd.apache.org/docs/2.4/rewrite/intro.html
  13. https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_r
  14. https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html
  15. https://httpd.apache.org/docs/2.4/expr.html
  16. https://serverfault.com/questions/968818/escaping-chars-in-htaccess#968916

Zuletzt aktualisiert: Freitag, 27. Dezember 2024 19:50+01:00