Magentos htaccess Datei erklärt

 — 8 Kommentare zu diesem Tutorial

Die .htaccess Datei ist mit eine der wichtigsten Dateien um Magento korrekt zu konfigurieren. Mit diesem Tutorial möchten wir Licht ins Dunkel von Magentos htaccess Datei bringen und die jeweilige Einstellungsmöglichkeit genauer erklären, damit jeder seinen Shop optimal konfigurieren kann.

htaccess Datei Funktionen

Unter dem jeweiligen Code-Abschnitt steht die kurze Erklärung wofür dieser Teil der Datei zuständig ist. Die htaccess Datei aus der folgenden Erklärung wurde aus der Magento Version 1.9.3.2 genommen.

Common Gateway Interface (CGI)

Das Common Gateway Interface (CGI) ist ein Standard für den Datenaustausch zwischen einem Webserver und dritter Software, die Anfragen bearbeitet.Statt nur statische Seiten von einem Webserver zu laden, die dort als Ressource zur Verfügung stehen, ist es mit CGI auch möglich, HTML-Seiten dynamisch zu erzeugen.

Go Daddy

Go Daddy ist ein Domainregistrar und Webhoster, der zusätzlich e-Business-Software und -dienstleistungen anbietet. Im Jahr 2010 verwaltete Go Daddy fast 40 Millionen Domains und ist damit der weltgrößte Registrar. Der Code „Options -MultiViews“ besagt das keine MultiView Ansichten möglich sind.

1&1 PHP-5-Parser

Für deutsche 1&1 Kunden kann dieser Abschnitt wichtig sein. Dieser Abschnitt bewirkt das man beliebige Dateitypen als PHP5-Skripte parsen („ausführen“) lassen kann. Häufig besteht der Wunsch alle .php-Dateien als PHP5-Skripte auszuführen. Mit diesem Code kann man die Dateien dazu zwingen.

Default index

Dieser Abschnitt sagt lediglich, dass die index.php die standard Index-Datei ist. Möchte man eine individuelle Startseite unter einem anderen Namen haben einfach hier angeben, z.B. start.php, home.php, …

Memory Limit und Execution Time

Hier kann man definieren wie viel Speicher (memory_limit) zur Verfügung stehen soll. Zum Vergleich: Bei WordPress oder Drupal ist es empfehlenswert mindestens 32MB zu definieren. Magento ist da hungriger und sollte mindestens die im Standard angegebenen 128MB haben, je nach Größe und Server empfiehlt es sich aber noch höher auf 256MB oder gar 512MB zu gehen. Dazu die Zeile php_value memory_limit 128M mit einem # deaktivieren und darunter die Zeile mit der gewünschten Größe einfügen, z.B. php_value memory_limit 512M.

Die max_execution_time legt die maximale Zeit in Sekunden fest, die ein Skript laufen darf, bevor der Parser die Ausführung stoppt. Diese Einstellung hilft zu verhindern, dass schlampig geschriebene Skripte Ihren Server lahmlegen.

Magic Quotes

Magic_quotes_gpc ist lediglich ein Mechanismus, der ursprünglich einmal SQL-Injektionen verhindern sollte. Magic_quotes_gpc ist ein Mechanismus, der auf vom Benutzer übermittelte Werte wirkt und vor dem einfachen und dem doppelten Anführungszeichen (‚ und „), dem Backslash (\) sowie dem NUL (das Null-Byte) einen zusätzlichen Backslash einfügt.

Session Autostart

session.auto_start spezifiziert, ob das Session-Modul zu Beginn einer Anfrage automatisch eine Session starten soll oder nicht. Grundeinstellung: off (deaktiviert).

Zlib Compression

Mit zlib.output_compression werden die Seiten komprimiert, wenn der Browser einen „Accept-Encoding: gzip“- oder einen „deflate“-Header sendet. Aus dem Komprimieren resultiert eine schnellere Ladezeit.

Suhosin

Suhosin ist ein Schutzsystem für PHP-Installationen. Es wurde entwickelt, um Server und Benutzer vor bekannten und unbekannten Fehlern in PHP-Anwendungen und im PHP-Kern zu schützen. Suhosin besteht aus zwei unabhängigen Teilen, die separat oder in Kombination verwendet werden können. Der erste Teil ist ein kleiner Patch der im PHP-Kern implementiert wird und Low-Level-Schutz gegen bufferoverflows oder Format-String-Schwachstellen bietet. Der zweite Teil ist eine leistungsstarke PHP-Erweiterung, die alle anderen Schutzmechanismen implementiert.

Kompatibilätsmodus

Aktiviert den Kompatibilätsmodus mit der Zend Engine 1 (PHP4). Diese Einstellung wirkt sich auf das Klonen, Casten und Vergleichen von Objekten aus. In diesem Modus werden Objekte standardmäßig als Werte anstelle von Referenzen übergeben. Dieses Feature wurde ab PHP 5.3.0 entfernt.

Security Filter

Diese Funktionen überwachen alle Zugriffe. Um Probleme beim Bilder-Upload zu verhindern, sind sie ausgeschaltet.

Apache Datei Kompression

Eine Kompression reduziert die Reaktionszeiten durch Reduzieren der HTTP-Antwort. Beginnend mit HTTP/1.1, geben Web-Clients Unterstützung für die Komprimierung mit dem Accept-Encoding-Header in der HTTP-Anforderung. Gzip reduziert im Allgemeinen die Antwortgröße um ca. 70%. Apache 1.3 verwendet mod_gzip, Apache 2.x verwendet mod_deflate. Je nachdem was sie verwenden, einfach die Raute # davor entfernen.

SSL Übertragung

Aktiviert die sichere Übertragung für den CGI Modus.

Suchmaschinenfreundliche URLs

Die RewriteEngine übersetzt Web-Adressen in lese- und suchmaschinenfreundliche URLs, z.B. meine-shop-adresse.de/b/artikel?id=12 in meine-shop-adresse.de/blog/beispielartikel. Allein aus SEO-Sicht aktiviert lassen!

RewriteBase

Soll die Seite in einem Unterordner erreichbar sein, kann hier der entsprechende Ordner angegeben werden, z.B. um das Beispiel von oben weiter zu führen: meine-shop-adresse.de/magento/blog/beispielartikel

RewriteRule API Processing

Nehmen Sie die Raute vor dieser Zeile weg, falls Sie für alle Typen API Processing zulassen möchten.

RewriteRule Rest API

Hier ist die rewrite rule für die Rest API angegeben.

HTTP authorization

Rewrite Rule der Adresse zur HTTP Autorisation in einer CGI Umgebung.

Trace und Track HTTP Methoden

Die TRACE und TRACK HTTP Methoden werden hier ausgeschaltet. Die TRACE- und TRACK-Protokolle sind HTTP-Methoden, die beim Debuggen von Webserver-Verbindungen verwendet werden. Obwohl diese Methoden für legitime Zwecke nützlich sind, können sie die Sicherheit Ihres Servers beeinträchtigen, indem sie Cross-Site-Scripting-Angriffe (XSS) ermöglichen. Durch die Ausnutzung bestimmter Browser-Schwachstellen kann ein Angreifer die TRACE- und TRACK-Methoden manipulieren, um die sensiblen Daten Ihrer Besucher abzufangen. Die Lösung ist natürlich diese Methoden auf Ihrem Webserver zu deaktivieren.

Mobiles Verzeichnis

Möchten Sie Ihre „mobilen Besucher“ in einen anderen Pfad weiterleiten, ersetzen Sie mobiledirectoryhere in den gewünschten Pfadnamen.

404 Fehler

Werden Medien-, CSS- oder Jacascript-Dateien in den Ordnern media, skin und js nicht gefunden (weil diese verlinkt aber gelöscht oder verschoben wurden), wird ein 404 Fehler gesendet.

Rewrite Conditions

Hier wird geprüft ob Dateien (!-f), Verzeichnisse (!-d) und Links (!-l) existieren. Wenn ja, werden sie zum Pfad hinzugefügt.

Rewrite Condition index

Treffen alle anderen Rewrite Regeln nicht zu, wird zu index.php geleitet.

Character encoding

AddDefaultCharset sollte nur verwendet werden, wenn von allen Textressourcen für die es gilt bekannt ist, dass sie in dieser Zeichkodierung vorliegen, oder wenn es zu unbequem ist ihre Zeichenkodierung individuell zu benennen.

Expires header

Web-Designs werden immer umfangreicher, d.h. es werden mehrere Skripte, Stylesheets, Bilder auf einer Seite geladen. Ein erstmaliger Besucher der Seite kann mehrere HTTP-Anforderungen stellen, aber mit den Expires-Header werden diese Komponenten zwischengespeichert, so lange der Header gilt.

Zugriffsbeschränkungen

Hier kann man angeben wer die Seite sehen darf bzw darauf zugreifen kann. Als Standard wird die Seite allen gezeigt, man kann aber auch Einschränkungen machen. Dazu einfach die Zeile „Allow from all“ ändern in z.B. „Allow from 192.168.1.104“ um nur Personen mit der IP zu geben.

Installierte Magento Version verbergen

An dieser Stelle wird der Zugriff auf die Release Notes verweigert, um die Offenlegung der installierten Magento-Version zu verhindern.

Entity Tags

Möchte man Magento auf mehrere Server aufteilen, benötigt man einen Mechanismus der die Dateien identifiziert. Entity Tags (ETags) sind ein Mechanismus für Web-Server und Browser um festzustellen ob die Komponente im Browser-Cache mit der auf dem Ursprungs-Server zusammenpasst. Ein ETag ist eine Zeichenfolge, die eindeutig eine bestimmte Version einer Komponente identifiziert.

Zugriff auf die Datei cron.php

Die letzte Funktion in der Datei bewirkt das der Zugriff auf die Datei cron.php (die die Cronjobs steuert) verweigert wird. Man kann aber auch den Zugriff gestatten und eine Passwortabfrage davor schalten wenn man die Rauten entfernt.

Magentos htaccess Datei erklärt
4.1 (8 Stimmen)

Autor

Sebastian

Ich interessiere mich für eCommerce-Themen, vor allem im Zusammenhang mit dem Shopsystem Magento Commerce sowie alles rund um Web-Entwicklung und den damit verbundenen Möglichkeiten.

8 Kommentare zu “Magentos htaccess Datei erklärt

  • 25. Mai 2013 um 11:58
    Permalink

    hallo,
    definiert man bei magento auch die Standard-Domain? Wenn ja, an welcher Stelle fügt man die Umleitung ein?
    Habe folgenden Code ganz oben einebaut und damit läuft der shop dann nicht.

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !^das-perfekte-bild.de$ [NC]
    RewriteRule ^(.*)$ http://das-perfekte-bild.de/$1 [L,R=301]

    Danke für die Hilfe

    Antwort
    • 3. November 2015 um 12:20
      Permalink

      Hallo,

      Ich habe folgendes Problem, ich glaube meine HTACCES verhindert das der Shop komplett auf SSL umgestellt wird. Leider wird mit bei Google Chrome kein grüner Schlüssel angezeigt. Ich habe die Einstellungen schon in Konfiguration ► Web vorgenommen Leider ohne Erfolg.

      Hier die HTACCES:
      RewriteEngine on

      RewriteCond %{HTTP_HOST} ^(www.)?hqs-shop.de$

      RewriteCond %{REQUEST_URI} !^/shop/

      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d

      RewriteRule ^(.*)$ /shop/$1

      RewriteCond %{HTTP_HOST} ^(www.)?hqs-shop.de$
      RewriteRule ^(/)?$ shop/index.php [L]

      Vielen Dank für deine Hilfe

      Antwort
      • 3. November 2015 um 13:00
        Permalink

        Hallo Florian,

        meist liegt es daran dass Dateien mit absolutem Pfad eingebaut sind (CSS, Bilder, etc…). Hier muss dann entweder ein relativer Pfad verwendet werden oder auch von einer https-Adresse geladen werden.

        Bei den beliebten Google Webfonts muss man z.B. auf folgendes achten:
        <link href='http://fonts.googleapis.com/css?family=Dosis:400,700' rel='stylesheet' type='text/css'>
        ändern zu:
        <link href='//fonts.googleapis.com/css?family=Dosis:400,700' rel='stylesheet' type='text/css'>

        Beste Grüße
        Sebastian

        Antwort
  • 26. Dezember 2013 um 12:14
    Permalink

    Hallo,

    ich würde gerne den Magentoshop, solange ich noch daran entwickle, hinter einer htaccess abfrage verstecken. Muss ich dazu einfach nur die Abfrage ganz oben in die htaccess einbauen?

    Vielen Dank und Gruß,

    Thomas

    Antwort
    • 31. Dezember 2013 um 16:00
      Permalink

      Hey Thomas,

      ja, dazu musst du einfach die passenden Zeilen am besten ganz oben in die htaccess Datei packen. Eine genaue Anleitung dazu findest du zum Beispiel hier.

      Beste Grüße
      Sebastian

      Antwort
  • Pingback: Die beliebtestens Magento News und Tutorials 2014 | Mag-tutorials.de

  • Pingback: Beliebteste Magento Tutorials und News 2013 | Mag-tutorials.de

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*