.htaccess Bild prüfen ob existiert, wie?

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

  • .htaccess Bild prüfen ob existiert, wie?

    Hallo
    ich habe folgendes Problem:

    Per PHP lasse ich Bild automatisch generieren und direkt ausgeben.

    im HTML sieht das in etwa so aus: <img src='pic.50x50.jpg' >

    D.h. durch die 50x50 kann ich das Bild entsprechen Skalieren lassen.
    Mit hilfe von .htaccess übersetzt der den wert "pic.50x50.jpg" in get.pic.php?x=50&y=50

    Nun werden die Skalierten Bilder in einen temp Ordner gespeichert damit beim nächsten aufrufe nicht mehr skaliert werden muss,

    Mit PHP prüfe ich z.Z. ob das Bild bereits existiert wen ja dann übergibt der eben dass Bild aus dem temp Ordner sonnst generiert der das Bild und erst dann übergibt es.

    Das Problem besteht darin, solange PHP mit der Skalierung oder auslesen der Bilder beschäftigt ist, kann ich in der Zeit nicht z.b. weitere Seiten öffnen da es immer abgewartet werden muss bis das ganze generiert wurde. Des Server ist auch dann generell Langsam wen die Bilder noch wo anders Verlinkt werden so mit arbeitet mein apatche pausen los nur um Bilder per PHP auszulesen und weiter zu geben.

    Meine Lösung wäre dass ich die Prüfung ob das Bild vorhanden ist mit .htaccess mache und entsprechend das Bild direkt aus gebe ohne das PHP damit beschäftigt wird. Wen das Bild aber nicht vorhanden ist soll eben die PHP ausgeführt werden.
    Mit der Lösung möchte ich den apatche entlasten und den Server somit wesentlich schneller machen, so dass wichtige Sachen schneller verarbeitet werden können.

    Leider weiß ich nicht wie ich mit .htaccess Prüfen kann ob eine Datei vorhanden ist so wie falls nicht auf eine andere Datei bzw. PHP weiter leiten kann.

  • #2
    mit einem angehängten "-f" bei der RewriteCond kannst du überprüfen ob es sich um eine reguläre Datei handelt und dann darauf reagieren.

    Genaueres dazu unter:
    mod_rewrite - Apache HTTP Server
    oder hier mit gleichem Problem:
    SELFHTML Forumsarchiv / 2007 / März / .htacces - prüfen ob datei existiert

    Kommentar


    • #3
      Danke für die Antwort.

      Leider brauche da etwas Hilfe da ich mit htaccess nicht so vertraut bin.

      Also dass ist mein Script:
      Code:
      RewriteBase /project/script/
      RewriteCond tmp/$1x$2.jpg -f
      RewriteRule ^tmp/([a-z0-9_]+)(\/|\s*)$ /tmp/pic.$1x$2.jpg [L]
      Also im Browser gebe ich folgendes ein: (lokal xampp)

      http ://localhost/project/script/pic.50x50.jpg

      Die Datei sollte sich aber tatsächlich im einem Unterordner tmp sich befindet und heißt etwas anders.
      http ://localhost/project/script/tmp/50x50.jpg

      Nun soll es aber falls die Datei nicht aufzufinden ist weiter zur folgenden URL geleitet werden damit die Datei per PHP generiert werden kann:

      http ://localhost/project/script/gen_pic.php?x=50&y=50&typ=jpg

      Kann mir da jemand weiter helfen?
      Falls es nicht vermeiden lässt kann ich den Namen des Bildes auch gleich benennen. Aber das diese Bilder im tmp Ordner aufzufinden sind, ist schon wichtig.
      Zuletzt geändert von MafiaGmbH; 17.07.2013, 10:30.

      Kommentar


      • #4
        Im Endeffekt reicht folgendes:

        Code:
        RewriteEngine on
        
        RewriteBase /project/script
        RewriteRule ^\.htaccess$ - [F]
        
        RewriteCond tmp/%{REQUEST_FILENAME} -f
        RewriteRule ^pic\.(.*)x(.*)\.jpg$ tmp/$1x$2.jpg
        RewriteRule ^pic\.(.*)x(.*)\.jpg$ test.php?x=$1&y=$2&typ=jpg
        Das RexEx geht natürlich schöner aber zum kurz testen hat es ausgereicht.

        Kommentar

        Lädt...
        X