Sehr schwankende Ladezeiten!

Thema wurde von Luk As, 1. März 2019 erstellt.

  1. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    Hallo zusammen,
    bin mit meinem Latein am Ende, ich habe bereits alles mögliche gemacht um die Ladezeiten etwas zu verbessern, doch leider weiß ich nicht mehr weiter, mein Hoster schrieb mir auf meine Anfrage folgendes:

    Guten Tag Herr Nowrot,
    vielen Dank für Ihre E-Mail.


    Das ist natürlich sehr ärgerlich und wir tun bereits eine Menge dafür, dass die Server performant sind und bleiben. Ich habe mir das daher mit der Technik zusammen einmal genauer angeguckt. Die Prüfung hat ergeben, dass wir ein serverseitiges Problem ausschließen können. Selbst bei geringer Serverauslastung kommt es teilweise zu langen Ladezeiten bei der Homepage.

    Wir vermuten, dass extern geladene Inhalte oder zu viele bzw. zu umfangreiche Datenbankabfragen Ihre Seite ausbremsen. Die Ladezeiten externer Inhalte schwanken, auch bei gleichbleibender Serverauslastung, sehr stark. Ggf. kann es auch an der Programmierung liegen oder die Bilder sind zu wenig komprimiert. Sie können dieses z.B. mit Hilfe Ihrer robots.txt ((Link nur für registrierte Nutzer sichtbar.)) überprüfen oder ggf. auch mit Hilfe einer einfachen html- oder php-Datei

    Wir können leider nicht genauer ermitteln, was genau hier Probleme macht. Dazu ist es erforderlich, dass Sie den Entwickler, Administrator oder Software-Anbieter kontaktieren. Eine aktuelle PHP-Version sowie den PHP-Beschleuniger sind bereits aktiv, daher gibt es keine bekannte Einstellung, die wir serverseitig noch vornehmen können. Sollte eine bestimmte Einstellung erforderlich sein, teilen Sie mir diese gerne nochmal mit.


    Ich gehe davon aus, dass die Seite auch auf anderen Servern Probleme machen wird. Sollten Sie sich dazu entscheiden, den Anbieter zu wechseln, kann ich Ihnen nur nochmal anbieten, Sie bestmöglich dabei zu unterstützen.



    Bin mittleiweile bei http 2.0 und auf einem SSD Server, die Dateigröße des HTML-Dokuments ist mit 86 kB und nicht viele Java und CSS Dateien, habe Bilder komprimiert, doch die Ladezeiten sind eine Katastrophe!

    Wer kann mir hier noch helfen oder einen Denkanstoss geben.....
     
  2. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    Ladezeiten zwischen 2 - 20 sek.!!!
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.601
    Danke erhalten:
    1.011
    Danke vergeben:
    881
    Kann viele Ursachen haben. So ist deine Seite gerade unauffällig abgsehen davon, dass dein Server nach dem connect etwa 4 Sekunden braucht, um Daten auszuliefern an den Browser. Das ist schon nicht ganz so fix. Ich würde mal auf externe Scripts tippen. Wenn die dazu noch ungeschickt eingebunden sind, kann es passieren, dass deine Seite nichts anzeigt, bis die entsprechenden Scripts geladen sind. Um diese Ursache auszuschließen, würde ich erstmal auskommentieren und 2 Wochen lang Veränderungen beobachten:

    - Deine Trusted Shops Badge
    - Deine seltsame Checkdomain Badge zum Serverstandort Deutschland

    Dann nochmal checken:
    - Cache-Einstellungen des Shops
    - Komprimierungseinstellungen und Cache-Lebenszeit in der .htaccess
    - Welche Module, die du gar nicht in Gebrauch hast, kannst du im Admin unter Modul-Center deaktivieren?
    - Gibt es irgendwelche PHP-seitige Weiterleitungen, die die Seitenauslieferung verzögern könnten?

    Hast du weitere externe Module / Ressourcen installiert, die nicht zum normalen Shopumfang gehören?

    Infos zu deinem Server bzw. deinen Hosting-Paket wären noch nett:
    - Prozessor
    - Anzahl der Kunden auf dem Server
    - ...

    VG
     
  4. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.601
    Danke erhalten:
    1.011
    Danke vergeben:
    881
    Neuer Test: Dein Server hat jetzt 9 Sekunden gebraucht, um Inhalte auszuliefern. Irgendwas blockiert da die Seitenauslieferung, vielleicht durch synchrones Laden von Scripten. Ist das ein Problem das jetzt recht neu ist oder hattest du das immer schon? Wenn ersteres, was hat sich geändert? Ein Update, ein neues Modul, ein Template-Wechsel, …?

    Ansonsten: Mit Abstand den größten Teil der Ladezeit verbringt der Browser damit, auf die Auslieferung von Daten vom Server zu warten. Wenn da jetzt Software-seitig nicht irgendwelche krassen Scripte laufen müssen, bevor überhaupt irgendwelche Daten ausgeliefert werden, würde ich sagen, dass es doch ein Hosting-Performance-Problem ist.
     
  5. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.601
    Danke erhalten:
    1.011
    Danke vergeben:
    881
    Hast du deine https Konfiguration richtig gemacht? Da stimmt was überhaupt nicht bei dir! Ruf mal ein Produkt ohne https auf und schau wie lange die Ladezeiten sind, um dich von http auf https umzuleiten: 40 Sekunden!!

    (Link nur für registrierte Nutzer sichtbar.)

    Ich glaube du solltest ein Ticket aufmachen...
     
  6. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    Hi,
    alle unnötigen Module habe ich deinstalliert
    Keine neuen Module
    habe alles auf das minimum runtergefahren
    keine externen PHP usw.

    Cache Optionen:

    Cache benutzen: aus
    Cache Ordner: cache
    Cache Lebenszeit: 3600
    Prüfe ob Cache modifiziert: aus


    HTTP Caching: an
     
  7. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    Ja da stimmt was nicht!!

    Das Problem mit den Ladezeiten hatte ich schon immer irgendwie:mad:
     
  8. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    Wo kann ich das https konfigurieren?
     
  9. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    Die Umleitung von http auf https der Startseite dauert schon ca. 10 sek!!!

    Was kann ich da tun?
     
  10. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.601
    Danke erhalten:
    1.011
    Danke vergeben:
    881
    Wer hat den Shop denn wann installiert? Und war das ein Umzug aus einem anderen System? Seit wann hast du das SSL-Zertifikat und von welchem Anbieter und welchem Hoster?

    Poste doch auch mal deine includes/configure.php (ohne Datenbank-Zugangsdaten!) und deine .htaccess - vielleicht sieht man da noch was drin zu einer fehlerhaften SSL-Konfiguration oder irgendwelche mehrfachen Weiterleitungen. Dass solche Weiterleitungen vom Shop selbst durch irgendwelche PHP-Scripte durchgeführt werden, schließt du aus? Keine alten deinstallierten Modul-Reste oder irgendwelche Overloads zur Weiterleitung von URLs die von alten Shopsystemen erstellt wurden etc.?

    Wenn du selbst was machen willst statt den Support zu bemühen: Die machen das häufig so, dass sie einzelne Systemordner auf deinem Server umbenennen und dann die Original-Ordner deiner Shopversion hochladen. Wenn sich dadurch was bessert, wissen die schonmal, dass da irgendwelche Dateien in deiner Installation verhunzt oder zu viel sind.
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.601
    Danke erhalten:
    1.011
    Danke vergeben:
    881
    In der includes/configure.php wird sowas hinterlegt. Wir können aber immer nur im Frontend auf deinen Shop schauen. Das ist ein bisschen in die Glaskugel schauen. Vielleicht gibt es eine einfache technische Erklärung (Fehlkonfiguration des Shops o.ä.), die der Support sehr schnell findet. Und sonst kann der zumindest ausschließen dass es an Gambio oder der Gambio-Konfiguration liegt und dir einen Webhosting-Provider-Wechsel empfehlen oder so.
     
  12. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    die Shopinstallation hat Gambio gemacht! Alles Updates usw. auch! Zertifikat habe ich schon seit dem ich den Shop habe 2009!

    SSL-Start (COMODO SSL Certificate (DV))
    Zertifizierungsstelle Comodo CA Limited
    Domains (Link nur für registrierte Nutzer sichtbar.)
    Status Aktiv

    Hoster: Checkdomain


    .httaccess

    # -----------------------------------------------------------------------------------------
    # $Id: .htaccess,v 1.1 2003/09/06 22:13:53 fanta2k Exp $
    #
    # XT-Commerce - ebusiness solutions
    # (Link nur für registrierte Nutzer sichtbar.)
    #
    # Copyright (c) 2003 XT-Commerce
    # -----------------------------------------------------------------------------------------
    # based on:
    # (c) 2000-2001 The Exchange Project
    # (c) 2002-2003 osCommerce (.htaccess,v 1.4 2001/04/22); (Link nur für registrierte Nutzer sichtbar.)
    # (c) 2003 nextcommerce (.htaccess,v 1.3 2003/08/13); (Link nur für registrierte Nutzer sichtbar.)
    #
    # Released under the GNU General Public License
    # -----------------------------------------------------------------------------------------
    #
    # This is used with Apache WebServers
    # The following blocks direct HTTP requests in this directory recursively
    #
    # For this to work, you must include the parameter 'Limit' to the AllowOverride configuration
    #
    # Example:
    #
    #<Directory "/usr/local/apache/htdocs">
    # AllowOverride Limit
    #
    # 'All' with also work. (This configuration is in your apache/conf/httpd.conf file)
    #
    # This does not affect PHP include/require functions
    #
    # Example: (Link nur für registrierte Nutzer sichtbar.) will not work

    # Apache 2.2
    <IfModule !mod_authz_core.c>
    <Files *.php>
    Order deny,allow
    Deny from all
    </Files>
    </IfModule>

    # Apache 2.4
    <IfModule mod_authz_core.c>
    <Files *.php>
    Require all denied
    </Files>
    </IfModule>


    configure.php

    <?php
    /* --------------------------------------------------------------

    XT-Commerce - community made shopping
    (Link nur für registrierte Nutzer sichtbar.)

    (c) 2003 XT-Commerce - community made shopping (Link nur für registrierte Nutzer sichtbar.)
    --------------------------------------------------------------
    based on:
    (c) 2000-2001 The Exchange Project (earlier name of osCommerce)
    (c) 2002-2003 osCommerce (configure.php,v 1.13 2003/02/10); (Link nur für registrierte Nutzer sichtbar.)

    Released under the GNU General Public License
    --------------------------------------------------------------*/

    // Define the webserver and path parameters
    // * DIR_FS_* = Filesystem directories (local/physical)
    // * DIR_WS_* = Webserver directories (virtual/URL)
    define('HTTP_SERVER', '(Link nur für registrierte Nutzer sichtbar.) // eg, (Link nur für registrierte Nutzer sichtbar.) - should not be empty for productive servers
    define('HTTPS_SERVER', '(Link nur für registrierte Nutzer sichtbar.) // eg, (Link nur für registrierte Nutzer sichtbar.) - should not be empty for productive servers
    define('ENABLE_SSL', true); // SSL: true = active, false = inactive
    define('DIR_WS_CATALOG', '/'); // absolute path required
    define('DIR_FS_DOCUMENT_ROOT', '/home/steeldealde/htdocs/');
    define('DIR_FS_CATALOG', '/home/steeldealde/htdocs/');
    define('DIR_WS_IMAGES', 'images/');
    define('DIR_WS_ORIGINAL_IMAGES', DIR_WS_IMAGES .'product_images/original_images/');
    define('DIR_WS_THUMBNAIL_IMAGES', DIR_WS_IMAGES .'product_images/thumbnail_images/');
    define('DIR_WS_INFO_IMAGES', DIR_WS_IMAGES .'product_images/info_images/');
    define('DIR_WS_POPUP_IMAGES', DIR_WS_IMAGES .'product_images/popup_images/');
    define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/');
    define('DIR_WS_INCLUDES',DIR_FS_DOCUMENT_ROOT. 'includes/');
    define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');
    define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');
    define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');
    define('DIR_WS_LANGUAGES', DIR_FS_CATALOG . 'lang/');

    define('DIR_WS_DOWNLOAD_PUBLIC', DIR_WS_CATALOG . 'pub/');
    define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
    define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');
    define('DIR_FS_INC', DIR_FS_CATALOG . 'inc/');

    // define our database connection
    define('DB_SERVER', 'localhost'); // eg, localhost - should not be empty for productive servers
    define('DB_SERVER_USERNAME', '');
    define('DB_SERVER_PASSWORD', '');
    define('DB_DATABASE', '');
    define('USE_PCONNECT', 'false'); // use persistent connections?
    define('STORE_SESSIONS', ''); // leave empty '' for default handler or set to 'mysql'
    ?>
     
  13. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    Mir ist gerade noch was aufgefallen!

    Habe
    _includes
    und
    includes

    ist das korrekt?
     
  14. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    Habe schon etliche Tickets erstellt, es hieß immer die Bilder und ähnliches sind Schuld, oder der Hoster!!!
     
  15. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.601
    Danke erhalten:
    1.011
    Danke vergeben:
    881
    _includes
    _includes wird nicht verwendet. Vermutlich ist das auch so ein Relikt von einer Ticket-Bearbeitung von Gambio. Kannst du meiner Ansicht nach löschen (aber mach vorsichtshalber eine Sicherung).
     
  16. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.601
    Danke erhalten:
    1.011
    Danke vergeben:
    881
    configure.php sieht meiner Ansicht nach gut aus, aber die .htaccess ist voll falsch. Hast du die aus dem Hauptverzeichnis genommen?
     
  17. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.601
    Danke erhalten:
    1.011
    Danke vergeben:
    881
    Welche Shopversion hast du denn?
     
  18. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    v3.10.1.0
     
  19. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    # Htaccess Version

    # -----------------------------------------------------------------------------


    ## By checking this variable from the Shop we can guess if htaccess Directives are current

    ## Since some hosters do provide apache mod_env and others only mod_envif we need to do some doubling

    ##

    ## Important: After changing the version, you have to update the version_ino/htaccessVersion.php file too.


    <IfModule mod_env.c>

    SetEnv gambio_htaccessVersion 2.7

    SetEnv gambio_mod_env_working 1

    </IfModule>


    <IfModule !mod_env.c>

    <IfModule mod_setenvif.c>

    SetEnvIf ENV ^(.*)$ gambio_htaccessVersion=2.7

    SetEnvIf ENV ^(.*)$ gambio_mod_envif_working=1

    </IfModule>

    </IfModule>


    # -----------------------------------------------------------------------------

    # Disable ETags for Performance

    # -----------------------------------------------------------------------------


    <IfModule mod_headers.c>



    <IfModule mod_env.c>

    SetEnv gambio_mod_headers_working 1

    </IfModule>


    <IfModule !mod_env.c>

    <IfModule mod_setenvif.c>

    SetEnvIf ENV ^(.*)$ gambio_mod_headers_working=1

    </IfModule>

    </IfModule>


    Header unset ETag


    </IfModule>


    # `FileETag None` doesn't work in all cases.


    FileETag None


    # -----------------------------------------------------------------------------

    # Set Default Encoding for static HTML Files, JSON and friends to standards

    # -----------------------------------------------------------------------------


    AddDefaultCharset UTF-8


    <IfModule mod_mime.c>


    <IfModule mod_env.c>

    SetEnv gambio_mod_mime_working 1

    </IfModule>


    <IfModule !mod_env.c>

    <IfModule mod_setenvif.c>

    SetEnvIf ENV ^(.*)$ gambio_mod_mime_working=1

    </IfModule>

    </IfModule>


    AddCharset utf-8 .atom \

    .bbaw \

    .geojson \

    .json \

    .jsonld \

    .manifest \

    .rdf \

    .rss \

    .topojson \

    .vtt \

    .webapp \

    .webmanifest \

    .xloc \

    .xml

    </IfModule>


    # ----------------------------------------------------------------------

    # MIME types |

    # ----------------------------------------------------------------------


    # There are quite some servers serving resources without the proper media types (f.k.a. MIME types)

    # breaking security,caching,compression


    <IfModule mod_mime.c>


    # Data interchange

    AddType application/atom+xml atom

    AddType application/json json map topojson

    AddType application/ld+json jsonld

    AddType application/rss+xml rss

    AddType application/vnd.geo+json geojson

    AddType application/xml rdf xml


    # JavaScript

    AddType application/javascript js


    # Manifest files

    AddType application/manifest+json webmanifest

    AddType application/x-web-app-manifest+json webapp

    AddType text/cache-manifest appcache


    # Media files

    AddType audio/mp4 f4a f4b m4a

    AddType audio/ogg oga ogg opus

    AddType image/bmp bmp

    AddType image/svg+xml svg svgz

    AddType image/webp webp

    AddType video/mp4 f4v f4p m4v mp4

    AddType video/ogg ogv

    AddType video/webm webm

    AddType video/x-flv flv

    AddType image/x-icon cur ico


    # Web fonts

    AddType application/font-woff woff

    AddType application/font-woff2 woff2

    AddType application/vnd.ms-fontobject eot

    AddType application/x-font-ttf ttc ttf

    AddType font/opentype otf


    # Other

    AddType application/octet-stream safariextz

    AddType application/x-bb-appworld bbaw

    AddType application/x-chrome-extension crx

    AddType application/x-opera-extension oex

    AddType application/x-xpinstall xpi

    AddType text/vcard vcard vcf

    AddType text/vnd.rim.location.xloc xloc

    AddType text/vtt vtt

    AddType text/x-component htc


    </IfModule>
     
  20. Luk As

    Luk As Erfahrener Benutzer

    Registriert seit:
    11. Januar 2017
    Beiträge:
    224
    Danke erhalten:
    17
    Danke vergeben:
    69
    # -----------------------------------------------------------------------------

    # Compression

    # -----------------------------------------------------------------------------


    <IfModule mod_deflate.c>



    <IfModule mod_env.c>

    SetEnv gambio_mod_deflate_working 1

    </IfModule>


    <IfModule !mod_env.c>

    <IfModule mod_setenvif.c>

    SetEnvIf ENV ^(.*)$ gambio_mod_deflate_working=1

    </IfModule>

    </IfModule>


    <IfModule mod_headers.c>

    SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding

    RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding

    </IfModule>


    <IfModule mod_filter.c>


    <IfModule mod_env.c>

    SetEnv gambio_mod_filter_working 1

    </IfModule>


    <IfModule !mod_env.c>

    <IfModule mod_setenvif.c>

    SetEnvIf ENV ^(.*)$ gambio_mod_filter_working=1

    </IfModule>

    </IfModule>


    AddOutputFilterByType DEFLATE "application/atom+xml" \

    "application/javascript" \

    "application/json" \

    "application/ld+json" \

    "application/manifest+json" \

    "application/rdf+xml" \

    "application/rss+xml" \

    "application/schema+json" \

    "application/vnd.geo+json" \

    "application/vnd.ms-fontobject" \

    "application/x-font-ttf" \

    "application/x-javascript" \

    "application/x-web-app-manifest+json" \

    "application/xhtml+xml" \

    "application/xml" \

    "font/eot" \

    "font/opentype" \

    "image/bmp" \

    "image/svg+xml" \

    "image/vnd.microsoft.icon" \

    "image/x-icon" \

    "text/cache-manifest" \

    "text/css" \

    "text/html" \

    "text/javascript" \

    "text/plain" \

    "text/vcard" \

    "text/vnd.rim.location.xloc" \

    "text/vtt" \

    "text/x-component" \

    "text/x-cross-domain-policy" \

    "text/xml"

    </IfModule>


    <IfModule mod_mime.c>

    AddEncoding gzip svgz

    </IfModule>


    </IfModule>


    # -----------------------------------------------------------------------------

    # Caching

    # -----------------------------------------------------------------------------


    <IfModule mod_expires.c>



    <IfModule mod_env.c>

    SetEnv gambio_mod_expires_working 1

    </IfModule>


    <IfModule !mod_env.c>

    <IfModule mod_setenvif.c>

    SetEnvIf ENV ^(.*)$ gambio_mod_expires_working=1

    </IfModule>

    </IfModule>



    ExpiresActive On


    # -----------------------------------------------------------------------------

    # Really cache anything

    # -----------------------------------------------------------------------------


    ExpiresDefault "access plus 1 month"



    # -----------------------------------------------------------------------------

    # Definitons for tweakers

    # -----------------------------------------------------------------------------


    # CSS

    ExpiresByType text/css "access plus 1 month"



    # Favicon (cannot be renamed!) and cursor images

    ExpiresByType image/vnd.microsoft.icon "access plus 1 month"

    ExpiresByType image/x-icon "access plus 1 month"



    # Media files

    ExpiresByType audio/ogg "access plus 1 month"

    ExpiresByType image/bmp "access plus 1 month"

    ExpiresByType image/gif "access plus 1 month"

    ExpiresByType image/jpeg "access plus 1 month"

    ExpiresByType image/png "access plus 1 month"

    ExpiresByType image/svg+xml "access plus 1 month"

    ExpiresByType image/webp "access plus 1 month"

    ExpiresByType video/mp4 "access plus 1 month"

    ExpiresByType video/ogg "access plus 1 month"

    ExpiresByType video/webm "access plus 1 month"



    # Web fonts

    ExpiresByType application/vnd.ms-fontobject "access plus 1 month"

    ExpiresByType font/eot "access plus 1 month"

    ExpiresByType font/opentype "access plus 1 month"

    ExpiresByType application/x-font-ttf "access plus 1 month"

    ExpiresByType application/font-woff "access plus 1 month"

    ExpiresByType application/x-font-woff "access plus 1 month"

    ExpiresByType font/woff "access plus 1 month"

    ExpiresByType application/font-woff2 "access plus 1 month"



    # JavaScript

    ExpiresByType application/javascript "access plus 1 month"

    ExpiresByType application/x-javascript "access plus 1 month"

    ExpiresByType text/javascript "access plus 1 month"



    # -----------------------------------------------------------------------------

    # Exclude these mimetypes from caching, these always need to be current

    # -----------------------------------------------------------------------------



    # XML Files like the Sitemap

    ExpiresByType application/xml "access plus 0 seconds"


    # Styleedit Output, Statistics, Shopintercommunication, API Output

    ExpiresByType application/json "access plus 0 seconds"


    # All kinds of exports

    ExpiresByType text/csv "access plus 0 seconds"



    </IfModule>


    # -----------------------------------------------------------------------------

    # Security

    # -----------------------------------------------------------------------------


    <ifModule mod_headers.c>


    Header set X-Content-Type-Options: nosniff


    </ifModule>


    # -----------------------------------------------------------------------------

    # Rewrites: SEOBoost, Security + Image Processing on the fly

    # -----------------------------------------------------------------------------


    <IfModule mod_rewrite.c>


    <IfModule mod_env.c>

    SetEnv gambio_mod_rewrite_working 1

    </IfModule>


    <IfModule !mod_env.c>

    <IfModule mod_setenvif.c>

    SetEnvIf ENV ^(.*)$ gambio_mod_rewrite_working=1

    </IfModule>

    </IfModule>


    RewriteEngine on


    ##some Hosters like 1&1 need the following line to be enabled, else all the following will fail all the time


    RewriteBase /


    # -----------------------------------------------------------------------------

    # Dynamically detect Rewritebase and URI part past Rewritebase

    # -----------------------------------------------------------------------------


    RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$

    RewriteRule ^(.*)$ - [E=SUFFIX:%2]


    RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$

    RewriteRule ^(.*)$ - [E=BASE:%1]


    # -----------------------------------------------------------------------------

    # Passthrough of HTTP Auth Headers to PHP on Hosts using PHP FPM/FCGI

    # -----------------------------------------------------------------------------


    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]


    # -----------------------------------------------------------------------------

    # Security: Deny direct access to important system folders

    # -----------------------------------------------------------------------------


    RewriteCond %{ENV:SUFFIX} ^admin/backups/.* [or]

    RewriteCond %{ENV:SUFFIX} ^cache/.* [or]

    RewriteCond %{ENV:SUFFIX} ^debug/.* [or]

    RewriteCond %{ENV:SUFFIX} ^download/.* [or]

    RewriteCond %{ENV:SUFFIX} ^export/inventory/.* [or]

    RewriteCond %{ENV:SUFFIX} ^export/invoice/.* [or]

    RewriteCond %{ENV:SUFFIX} ^export/packsingslip/.* [or]

    RewriteCond %{ENV:SUFFIX} ^export/sepa/.* [or]

    RewriteCond %{ENV:SUFFIX} ^gm/customer_uploads/.* [or]

    RewriteCond %{ENV:SUFFIX} ^GProtector/.* [or]

    RewriteCond %{ENV:SUFFIX} ^GXEngine/.* [or]

    RewriteCond %{ENV:SUFFIX} ^GXMainComponents/.* [or]

    RewriteCond %{ENV:SUFFIX} ^includes/.* [or]

    RewriteCond %{ENV:SUFFIX} ^logfiles/.* [or]

    RewriteCond %{ENV:SUFFIX} ^templates_c/.* [or]

    RewriteCond %{ENV:SUFFIX} ^uploads/.* [or]

    RewriteCond %{ENV:SUFFIX} ^version_info/.*

    RewriteRule ^(.*)$ - [R=403,L]


    # -----------------------------------------------------------------------------

    # Image Processing on the fly

    # -----------------------------------------------------------------------------


    ## if request destination is a product image and size not bigger than 0 try to create the sized image

    RewriteCond %{REQUEST_FILENAME} ".*?\/images\/product_images\/.*\.(?:gif|jpe?g|png)$" [NC]

    RewriteCond %{REQUEST_FILENAME} !-s

    RewriteRule (\.gif|\.jpe?g|\.png)$ %{ENV:BASE}shop.php?do=ImageRequest [L,NC]


    # -----------------------------------------------------------------------------

    # Put your own Redirects and Rewrites here - Start

    # -----------------------------------------------------------------------------



    # Example Redirect

    # Redirect 301 /oldlocation (Link nur für registrierte Nutzer sichtbar.)



    # -----------------------------------------------------------------------------

    # Put your own Redirects and Rewrites here - End

    # -----------------------------------------------------------------------------


    # -----------------------------------------------------------------------------

    # Gambio SEO Boost URLs

    # -----------------------------------------------------------------------------


    ## if request destination is any of these filetypes or located in any of these folders stop processing rewrite

    RewriteCond %{REQUEST_FILENAME} ^(.*)\.(php|css|js|gif||jpe?g|png)$ [NC] [or]

    RewriteCond %{REQUEST_URI} .*?\/(?:admin|images|public|templates)\/.

    RewriteRule ^(.+) - [L]


    ## if request destination is an existing directory, file or link stop processing rewrite

    RewriteCond %{REQUEST_FILENAME} -d [or]

    RewriteCond %{REQUEST_FILENAME} -f [or]

    RewriteCond %{REQUEST_FILENAME} -l

    RewriteRule ^(.+) - [L]


    #if request destination is a php file in root dir and language code in url is present lets go there

    RewriteRule ^[a-z]{2}/([A-Za-z0-9_/-]+)\.php.* %{ENV:BASE}$1.php?%{QUERY_STRING} [PT,L]



    ##If all of these conditions didn't stop us, lets rewrite


    ##boosted CONTENT

    RewriteRule (^[A-Za-z]{2}/){0,1}(.*/)?info/([A-Za-z0-9_/-]+)\.html.* %{ENV:BASE}shop_content.php?gm_boosted_content=$3&%{QUERY_STRING} [PT,L]

    RewriteRule (^[A-Za-z]{2}/){0,1}(.*/)?popup/([A-Za-z0-9_/-]+)\.html.* %{ENV:BASE}popup_content.php?gm_boosted_content=$3&%{QUERY_STRING} [PT,L]


    ##boosted PRODUCTS

    RewriteRule (^[A-Za-z]{2}/){0,1}([A-Za-z0-9_/-]+)\.html %{ENV:BASE}product_info.php?gm_boosted_product=$2&%{QUERY_STRING} [PT,L]


    ##boosted CATEGORIES

    RewriteRule (^[A-Za-z]{2}/){0,1}([A-Za-z0-9_\/-]*)(\?*.*|\z) %{ENV:BASE}index.php?gm_boosted_category=$2&%{QUERY_STRING} [L]


    </IfModule>