Ankündigung

Einklappen
Keine Ankündigung bisher.

RewriteCond „Datei existiert“

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    RewriteCond „Datei existiert“

    Ich versuche gerade, meine gecacheten Seiten auszugeben falls vorhanden:

    Code:
    RewriteEngine On
    RewriteBase /
    
    RewriteCond cache/index.html -f
    RewriteRule ^cachetest$ cache/index.html [L]
    
    # Versuch mit relativem Pfad:
    RewriteCond cache/index.html -f
    RewriteRule ^cachetest$ cache/index.html [L]
    
    # Versuch mit absolutem Pfad:
    RewriteCond /cache/index.html -f
    RewriteRule ^cachetest$ cache/index.html [L]
    
    # Versuch mit DOCUMENT_ROOT:
    RewriteCond %{DOCUMENT_ROOT}/cache/index.html -f
    RewriteRule ^cachetest$ cache/index.html [L]
    Leider funktionieren alle drei Varianten nicht, obwohl die Datei existiert. Wenn ich zum Testen die RewriteCond auskommentiere oder mit !-f arbeite, wird die korrekte Seite angezeigt. Es liegt als wohl nicht an der RewriteRule selbst.

    Irgendwie scheint der überprüfte Pfad nicht zu stimmen. Wie bringe ich das zum laufen?

    Ich habe den Tarif ManagedHosting Professional.
    Zuletzt geändert von ahrens; 31.03.2021, 13:14.

    #2
    Hallo ahrens,

    was möchten Sie mit den Regeln denn genau tun und wie ist Ihre Verzeichnisstruktur?

    Dann kann sicher eher jemand helfen.

    Das Thema habe ich mal passend in den technischen Bereich verschoben.

    Mit freundlichen Grüßen

    Nils Dornblut
    Blog - Facebook - Twitter
    Communitybetreiber: domainfactory GmbH
    Impressum / Pflichtangaben

    Kommentar


      #3
      Zitat von Nils Dornblut Beitrag anzeigen
      was möchten Sie mit den Regeln denn genau tun
      Ich möchte die gecachte Datei servieren, falls vorhanden.

      Falls nicht, wird weiter unten (wieder per RewriteRule) ein PHP-Script aufgerufen, das wiederum die cache/index.html schreibt (und ausgibt). Dies bedeutet, dass man gefahrlos den Cache löschen kann, wie dies ja immer bei einem Cache der Fall sein sollte.

      Zitat von Nils Dornblut Beitrag anzeigen
      und wie ist Ihre Verzeichnisstruktur?
      Im Top Level der Domain befindet sich die .htaccess. Es gibt ein Verzeichnis namens cache, darin die Datei index.html, oder auch nicht.

      Kommentar


        #4
        Hier eine teilweise Antwort auf meine Frage:

        Code:
        RewriteEngine On
        RewriteBase /
        
        RewriteCond kunden/12345_12345/meine-domain.com/cache/index.html -f
        RewriteRule ^cachetest$ cache/index.html [L]
        So funktioniert es. Allerdings ist diese Lösung nicht sehr robust und geht kaputt, sobald man den Domain-Inhalt verschiebt.

        Ich dachte ursprünglich, mit %{DOCUMENT_ROOT} sollte es funktionieren (siehe Post ganz oben), aber in %{DOCUMENT_ROOT} steckt /kunden/shadow/htdocs/ und nicht, wie erhofft, der korrekte Pfad. Verstehe ich etwas falsch oder steckt dahinter eine etwas gewagte Optimierung seitens DF?

        Gibt es eine universellere, robustere Lösung als die obige?

        Kommentar

        Lädt...
        X