Problem mit RewriteRule bei Apache 2.4

  • Guten Morgen :razz:

    Mit meinem Geschäftspartner habe ich in den letzten Monaten mehrere Kundenwebseiten relaunched. Bei einigen Dateitypen setzen wir mod_expire ein (z.B. bei text/css) mit 7 Tagen Cachezeit. Damit die Dateien (css, js) aber bei Änderungen trotzdem geladen werden, verändere ich den Dateinamen leicht und füge einen gekürzten Hash ein.

    Aus css/bootstrap.min.css wird also css/bootstrap.min-8eb176c.css

    Per mod_rewrite habe ich dazu folgende Regel angelegt:

    Apache Configuration
    RewriteRule ^(.*)(\-[a-f0-9]{7})(\.css|\.js)$ $1$3 [L]

    Diese funktionierte bisher bei allen Kunden und auf unserem Projektserver problemlos. Jetzt hatten wir einen Kunden bei dem diese Regel nicht gegriffen hat. Diese wurde in der Form völlig ignoriert. Den einzigen Unterschied den wir feststellen konnten, dass bei diesem Kunden Apache 2.4 läuft - bei allen anderen Webseiten Apache 2.2.

    Ich vermute daher, dass es dahingehend eine kleine Änderung bei mod_rewrite gegeben hat. Letztendlich haben wir es nach ein wenig ausprobieren hinbekommen. Unter Apache 2.4 funktionierte die RewriteRule dann mit

    Apache Configuration
    RewriteRule "^(.*)(\-[a-f0-9]{7})(\.css|\.js)$" "/$1$3" [L]

    Aus Verständnis würde ich gern wissen ob es dahingehend eine Änderung des Moduls mod_rewrite von Apache 2.2 nach 2.4 gab.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Apache 2.4 oder Apache 2.4.2 oder?

    so auf die Schnelle

    2.4.2 hat //hatte einen Bug mit mod_rewrite

    https://bz.apache.org/bugzilla/show_bug.cgi?id=53929

  • Habe eben nochmal nachgeschaut. Es handelt sich um

    Code
    Apache/2.4.10

    Änderungen gab es eine Menge ... Das stimmt. Die Seite hatte ich auch schon gefunden. Aber bzgl. unserer RewriteRule finde ich dort nichts. Wie gesagt - ich möchte es nur eben verstehen.

  • Wir haben inzwischen einen anderen Server mit Apache/2.4.17 wo wir dies noch einmal genauer testen konnte. Auf diesem Server hat unsere bisherige RewriteRule anstandslos funktioniert.

    Für den einen Kundenserver mussten wir bei unserer Regel lediglich den "/" vor $1$3 am Ende setzen

    Apache Configuration
    [COLOR=#333333]RewriteRule ^(.*)(\-[a-f0-9]{7})(\.css|\.js)$ /$1$3 [L][/COLOR]

    Per RewriteCond %{HTTP_HOST} haben wir unsere Regel erweitert, damit die Anpassung unsere lokalen Versionen nicht beeinflusst.

    Also wird dies ein Bug sein auf dem Kundenserver mit Apache/2.4.10.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!