Htaccess: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Änderung 5282 von Tril (Diskussion) wurde rückgängig gemacht.)
 
(13 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 4: Zeile 4:
 
| Dev=Tristan Lins
 
| Dev=Tristan Lins
 
| ExtVersion=2.0.0
 
| ExtVersion=2.0.0
| Version=2.10
+
| Version=2.9+
 
| ERLink=http://www.contao.org/erweiterungsliste/view/htaccess.de.html
 
| ERLink=http://www.contao.org/erweiterungsliste/view/htaccess.de.html
 
| TrackerLink=http://contao-forge.org/projects/htaccess
 
| TrackerLink=http://contao-forge.org/projects/htaccess
Zeile 26: Zeile 26:
  
 
[[Datei:htaccess_settings.png|frame|center]]
 
[[Datei:htaccess_settings.png|frame|center]]
 +
 +
==Versionierung==
 +
 +
Ab Version 2.0.0 rc2 werden die vorherigen Versionen gespeichert. Diese können über das Feld '''Vorherige Version laden''' wiederhergestellt werden. Die Versionen werden unter <code>system/config/htaccess.<timestamp>.php</code> gespeichert.
 +
 +
[[Datei:htaccess_previous_versions.png|frame|center]]
  
 
==Templating==
 
==Templating==
  
Templates können nur als komplettes Set ausgeliefert werden. Die Templates beginnen mit htaccess_ und enden auf das ausgewählte Set. Z.B. htaccess_base_contao.
+
{{Achtung|Seit der RC3 gibt es keine unterschiedlichen Templates (contao und h5bp) mehr.}}
  
Alle verfügbaren Templates:
+
Der gesamte Editor baut die .htaccess Datei aus Templates zusammen. Durch modifizieren der Templates kann die .htaccess Datei individuell angepasst werden. Die Templates beginnen mit ''htaccess_'', gefolgt von dem Modulnamen z.B. ''htaccess_deflate''. Eine besonderheit ist das ''htaccess_base'' Template, dieses stellt das Grundgerüst für die .htaccess Datei bereit. Eigene Templates müssen direkt im <code>templates/</code> Verzeichnis der Installation abgelegt werden.
* htaccess_base_contao.html5
+
* htaccess_base_h5bp.html5
+
* htaccess_custom_contao.html5
+
* htaccess_custom_h5bp.html5
+
* htaccess_deflate_contao.html5
+
* htaccess_deflate_h5bp.html5
+
* htaccess_etag_contao.html5
+
* htaccess_etag_h5bp.html5
+
* htaccess_etag_headers_contao.html5
+
* htaccess_etag_headers_h5bp.html5
+
* htaccess_expires_contao.html5
+
* htaccess_expires_h5bp.html5
+
* htaccess_headers_contao.html5
+
* htaccess_headers_h5bp.html5
+
* htaccess_mime_contao.html5
+
* htaccess_mime_h5bp.html5
+
* htaccess_rewrite_contao.html5
+
* htaccess_rewrite_h5bp.html5
+
  
Einzelne Templates können natürlich überschrieben werden, dafür müssen diese direkt im templates/ Verzeichnis der Installation abgelegt werden.
+
==Konfiguration==
 +
 
 +
Seit Version 2.0.0 rc2 wird eine eigene Konfigurationsdatei erstellt. Anstelle die Einstellungen in der <code>system/config/localconfig.php</code> zu speichern, wird eine Datei <code>system/config/htaccess.php</code> erzeugt.
 +
Verwaltet wird diese Datei über die Klasse <code>HtaccessConfig</code>. Wenn die Konfiguration mittels einer Extension verändert werden soll, muss also diese Klasse verwendet werden und '''nicht''' die <code>Config</code> Klasse.
 +
Die <code>HtaccessConfig</code> kann als drop-in-replacement zur <code>Config</code> Klasse verwendet werden, so wird es bspw. in dem eigenen DC_File Treiber gemacht.
 +
 
 +
<source lang="php">
 +
class MyClass extends System
 +
{
 +
  /**
 +
  * @var HtaccessConfig
 +
  */
 +
  $Config;
 +
 
 +
  public function __construct()
 +
  {
 +
    $this->import('HtaccessConfig', 'Config');
 +
    parent::__construct();
 +
  }
 +
}
 +
</source>
  
 
==Die Module==
 
==Die Module==
 +
 +
===Auth Modul===
 +
 +
[[Datei:htaccess_auth.png|frame|center]]
 +
 +
Mit dem Auth Modul kann der Zugriff auf die Installation mittels HTTP Authentifizierung beschränkt werden.
  
 
===ETag Modul===
 
===ETag Modul===
Zeile 75: Zeile 89:
  
 
Hier kann eingestellt werden, welche Dateien durch Deflate komprimiert werden sollen.
 
Hier kann eingestellt werden, welche Dateien durch Deflate komprimiert werden sollen.
 
{{Hinweis|Das html5boilerplate Templateset erwartet hier einen MIME Type, keine Dateiendung!}}
 
 
===Headers Modul===
 
 
[[Datei:htaccess_headers.png|frame|center]]
 
 
Das Headers Modul setzt HTTP Header beim Response.
 
Dieses Modul wird vorwiegend von anderen Modulen genutzt, z.B. von dem ETag Modul.
 
  
 
===Expires Modul===
 
===Expires Modul===
Zeile 112: Zeile 117:
  
 
{{Hinweis|Beide Optionen lassen sich auch kombinieren!}}
 
{{Hinweis|Beide Optionen lassen sich auch kombinieren!}}
 +
 +
====favicon.ico Umschreiben====
 +
(seit Version 2.1)
 +
 +
Ältere Browser - unter anderem IE <= 8 - kommen mit dem Meta Element <code><link rel="icon" type="image/vnd.microsoft.icon" href="path/to/favicon.ico" /></code> nicht klar und zeigen kein Favicon an. Dieses Feature legt Rewrite Regeln für die unterschiedlichen Startpunkte an, so dass beim Aufruf von www.example.com/favicon.ico die eingerichtete Favicon Datei angezeigt wird. Zur Zeit werden Favicons unterstützt, die mit den Erweiterungen [http://www.contao.org/de/extension-list/view/Favicon.html Favicon] oder [http://www.contao.org/de/extension-list/view/myfavicon.html myfavicon] eingerichtet werden.
 +
 +
{{Hinweis|Es werden nur Favicons auf den Startpunkten unterstützt!}}
  
 
===html5boilerplate Features===
 
===html5boilerplate Features===
Zeile 117: Zeile 129:
 
[[Datei:htaccess_h5bp.png|frame|center]]
 
[[Datei:htaccess_h5bp.png|frame|center]]
  
{{Hinweis|Diese Features sind auch in dem contao Templateset verfügbar!}}
+
'''Apache MultiView deaktivieren''' sorgt dafür, dass Aufrufe wie z.B. /index.php/blog.html nicht mehr möglich sind. Apache wirft dann einen 404 Fehler.
 +
 
 +
'''Apache Indexes deaktivieren''' sorgt dafür, dass Apache die Verzeichnisinhalte nicht mehr auflistet, wenn keine Index Datei vorhanden ist.
  
 
'''Neueste IE Engine erzwingen''' bewirkt, dass der Browser nicht in den Kompatibilitätsmodus wechselt, sondern die neueste IE Engine zum Rendern verwendet.
 
'''Neueste IE Engine erzwingen''' bewirkt, dass der Browser nicht in den Kompatibilitätsmodus wechselt, sondern die neueste IE Engine zum Rendern verwendet.
Zeile 126: Zeile 140:
  
 
'''IE Flimmern bei CSS rollover verhindern''' bewirkt, dass beim Nachladen von Grafiken die durch ein CSS rollover entstehen können kein Flimmern (kurzes verschwinden des Hintergrundes) entsteht.
 
'''IE Flimmern bei CSS rollover verhindern''' bewirkt, dass beim Nachladen von Grafiken die durch ein CSS rollover entstehen können kein Flimmern (kurzes verschwinden des Hintergrundes) entsteht.
 +
 +
=Troubleshooting=
 +
 +
Was kann man tun, wenn man sich mit dieser Erweiterung die .htaccess Datei zerstört hat und der Apache nur noch einen '''500 Internal Server Error''' liefert?
 +
 +
'''1. Fehler analysieren''', für eine erfolgreiche Fehlerbehebung ist es von Vorteil, wenn man sich die generierte .htaccess Datei ansieht. Wenn man dort nichts findet, empfiehlt sich ein Blick in das error.log des Webservers. (Wo dieses Log abgelegt wird, ist von Anbieter zu Anbieter unterschiedlich)
 +
 +
'''2. .htaccess löschen''', da es sich bei dem '''500 Internal Server Error''' um einen Webserver-Fehler handelt, kann man leider von Contao-Wegen nichts mehr machen, hier hilft nur das löschen - oder korrigieren - der fehlerhaften .htaccess Datei.
 +
 +
'''3. Erweiterung aktualisieren''', eventuell wurde noch eine alte, fehlerhafte Version der Erweiterung verwendet. Daher empfiehlt es sich, dass man - bevor man die Datei neu generieren lässt - zuerst überprüft, ob es eine Aktualisierung gibt.
 +
 +
'''4. Einstellungen überprüfen''', jetzt gilt es, die Fehlerhaften Einstellungen im Backend zu korrigieren.
 +
 +
'''5. Datei neu generieren''', beim Speichern der Einstellungen wird die .htaccess Datei neu generiert, wenn diesmal alles richtig ist, wird kein '''500 Internal Server Error''' mehr entstehen. Sollte dies wieder der Fall sein, muss wieder bei Schritt 1 begonnen werden.

Aktuelle Version vom 1. Juli 2012, 09:34 Uhr

Mit der Erweiterung htaccess lässt sich die .htaccess Datei aus dem Backend heraus konfigurieren.

Erweiterungs-Übersicht
Name des Entwicklers Tristan Lins
Version der Erweiterung 2.0.0
Kompatibilität mit Contao Version 2.9+
Link zum Extension Repository http://www.contao.org/erweiterungsliste/view/htaccess.de.html
Link zum Tracker http://contao-forge.org/projects/htaccess
Abhängig von ff. Erweiterungen MultiColumnWizard


.htaccess Editor

Der .htaccess Editor erlaubt es die .htaccess Datei aus dem Backend heraus zu bearbeiten. Damit ist jedoch kein einfacher Code-Editor gemeint, sondern eine dynamische Konfiguration der .htaccess Datei.

Der Editor erlaubt die Konfiguration aller wichtigen Funktionen durch die Bearbeitungsmaske.

Installation

Die Installation erfolgt einfach über den Erweiterungskatalog/die Erweiterungsverwaltung. Der Name der Erweiterung ist htaccess.

Htaccess editor.png

Nach der Installation ist im Backend und System ein neuer Menüpunkt .htaccess Editor zu finden. Es empfiehlt sich, nach der Installation zuerst einige Voreinstellungen zu laden, zur Verfügung stehen contao mit den Contao Standardeinstellungen (wie in .htaccess.default) und html5boilerplate welches ein Misch aus wichtigen Contao Einstellungen und html5boilerplate Einstellungen ist.

Htaccess settings.png

Versionierung

Ab Version 2.0.0 rc2 werden die vorherigen Versionen gespeichert. Diese können über das Feld Vorherige Version laden wiederhergestellt werden. Die Versionen werden unter system/config/htaccess.<timestamp>.php gespeichert.

Htaccess previous versions.png

Templating

Achtung.png Achtung: Seit der RC3 gibt es keine unterschiedlichen Templates (contao und h5bp) mehr.


Der gesamte Editor baut die .htaccess Datei aus Templates zusammen. Durch modifizieren der Templates kann die .htaccess Datei individuell angepasst werden. Die Templates beginnen mit htaccess_, gefolgt von dem Modulnamen z.B. htaccess_deflate. Eine besonderheit ist das htaccess_base Template, dieses stellt das Grundgerüst für die .htaccess Datei bereit. Eigene Templates müssen direkt im templates/ Verzeichnis der Installation abgelegt werden.

Konfiguration

Seit Version 2.0.0 rc2 wird eine eigene Konfigurationsdatei erstellt. Anstelle die Einstellungen in der system/config/localconfig.php zu speichern, wird eine Datei system/config/htaccess.php erzeugt. Verwaltet wird diese Datei über die Klasse HtaccessConfig. Wenn die Konfiguration mittels einer Extension verändert werden soll, muss also diese Klasse verwendet werden und nicht die Config Klasse. Die HtaccessConfig kann als drop-in-replacement zur Config Klasse verwendet werden, so wird es bspw. in dem eigenen DC_File Treiber gemacht.

class MyClass extends System
{
  /**
   * @var HtaccessConfig
   */
  $Config;
 
  public function __construct()
  {
    $this->import('HtaccessConfig', 'Config');
    parent::__construct();
  }
}

Die Module

Auth Modul

Htaccess auth.png

Mit dem Auth Modul kann der Zugriff auf die Installation mittels HTTP Authentifizierung beschränkt werden.

ETag Modul

Htaccess etag.png

Das ETag Modul hat eigentlich nur eine Aufgabe, die ETags zu deaktivieren. Da die ETags in Contao überhaupt nicht unterstützt werden, gibt es hier keine weiteren Einstellungen.

MIME Modul

Htaccess mime.png

Mit dem MIME Modul lässt sich kontrollieren, welchen MIME Type und welches MIME Encoding der Webserver an den Browser schickt. Damit kann das Verhalten des Browsers beeinflusst werden.

Deflate Modul

Htaccess deflate.png

Das Deflate Modul komprimiert den Response live mit gzip, so dass weniger Daten übertragen werden müssen. Dies macht aber meistens nur für Text-Inhalte (HTML, CSS, JavaScript) Sinn, bei Binärdaten (Bilder, Videos) kann es sogar zu einer Vergrößerung der Datenmenge kommen.

Hier kann eingestellt werden, welche Dateien durch Deflate komprimiert werden sollen.

Expires Modul

Htaccess expires.png

Das Expires Modul setzt die Verfallszeit für Dateien und bestimmt so, wann ein Browser die Datei aktualisiert.

Custom Modul

Htaccess custom.png

Das Custom Modul dient dazu, eigene Regeln in die .htaccess Datei zu bringen. Über das Custom Modul kann jeder beliebige Code in die .htaccess Datei gebracht werden.

Rewrite Modul

Htaccess rewrite.png

Das Rewrite Modul kontrolliert die Rewrite Regeln. Es lassen sich eigene Regeln anlegen oder aber dynamische Regeln erzeugen lassen. Bspw. für Domains mit und ohne "www.". Auch der Pfad Suffix .html lässt sich hier ändern.

www. hinzufügen und entfernen

Die Option www. hinzufügen bewirkt, dass Domains die in der Seitenstruktur mit www. angelegt wurden so umgeschrieben werden, dass von der Domain ihre-domain.de auf www.ihre-domain.de umgeleitet wird. (Vorausgesetzt example.com ist nicht als eigener Startpunkt eingetragen). Tragen Sie dafür einfach in der Seitenstruktur im "Startpunkt der Website" unter Domain www.ihre-domain.de ein.

Die Option www. entfernen bewirkt, dass Domains die in der Seitenstruktur ohne www. angelegt wurden so umgeschrieben werden, dass von der Domain www.ihre-domain.de auf ihre-domain.de umgeleitet wird. (Vorausgesetzt www.ihre-domain.de ist nicht als eigener Startpunkt eingetragen). Tragen Sie dafür einfach in der Seitenstruktur im "Startpunkt der Website" unter Domain ihre-domain.de ein.


Hinweis.png Hinweis: Beide Optionen lassen sich auch kombinieren!


favicon.ico Umschreiben

(seit Version 2.1)

Ältere Browser - unter anderem IE <= 8 - kommen mit dem Meta Element <link rel="icon" type="image/vnd.microsoft.icon" href="path/to/favicon.ico" /> nicht klar und zeigen kein Favicon an. Dieses Feature legt Rewrite Regeln für die unterschiedlichen Startpunkte an, so dass beim Aufruf von www.example.com/favicon.ico die eingerichtete Favicon Datei angezeigt wird. Zur Zeit werden Favicons unterstützt, die mit den Erweiterungen Favicon oder myfavicon eingerichtet werden.


Hinweis.png Hinweis: Es werden nur Favicons auf den Startpunkten unterstützt!


html5boilerplate Features

Htaccess h5bp.png

Apache MultiView deaktivieren sorgt dafür, dass Aufrufe wie z.B. /index.php/blog.html nicht mehr möglich sind. Apache wirft dann einen 404 Fehler.

Apache Indexes deaktivieren sorgt dafür, dass Apache die Verzeichnisinhalte nicht mehr auflistet, wenn keine Index Datei vorhanden ist.

Neueste IE Engine erzwingen bewirkt, dass der Browser nicht in den Kompatibilitätsmodus wechselt, sondern die neueste IE Engine zum Rendern verwendet.

Cross-Domain AJAX Requests erlaubt AJAX Requests über verschiedene Domains. Kann im Multi-Domain Betrieb nützlich sein.

Includes in CSS/JS Dateien erlauben erlaubt die Nutzung von Server-Side-Includes in *.combined.css/js Dateien. Details dazu sind der html5boilerplate .htacces Beispieldatei zu entnehmen.

IE Flimmern bei CSS rollover verhindern bewirkt, dass beim Nachladen von Grafiken die durch ein CSS rollover entstehen können kein Flimmern (kurzes verschwinden des Hintergrundes) entsteht.

Troubleshooting

Was kann man tun, wenn man sich mit dieser Erweiterung die .htaccess Datei zerstört hat und der Apache nur noch einen 500 Internal Server Error liefert?

1. Fehler analysieren, für eine erfolgreiche Fehlerbehebung ist es von Vorteil, wenn man sich die generierte .htaccess Datei ansieht. Wenn man dort nichts findet, empfiehlt sich ein Blick in das error.log des Webservers. (Wo dieses Log abgelegt wird, ist von Anbieter zu Anbieter unterschiedlich)

2. .htaccess löschen, da es sich bei dem 500 Internal Server Error um einen Webserver-Fehler handelt, kann man leider von Contao-Wegen nichts mehr machen, hier hilft nur das löschen - oder korrigieren - der fehlerhaften .htaccess Datei.

3. Erweiterung aktualisieren, eventuell wurde noch eine alte, fehlerhafte Version der Erweiterung verwendet. Daher empfiehlt es sich, dass man - bevor man die Datei neu generieren lässt - zuerst überprüft, ob es eine Aktualisierung gibt.

4. Einstellungen überprüfen, jetzt gilt es, die Fehlerhaften Einstellungen im Backend zu korrigieren.

5. Datei neu generieren, beim Speichern der Einstellungen wird die .htaccess Datei neu generiert, wenn diesmal alles richtig ist, wird kein 500 Internal Server Error mehr entstehen. Sollte dies wieder der Fall sein, muss wieder bei Schritt 1 begonnen werden.

Ansichten
Meine Werkzeuge

Contao Community Documentation

Programmierer brauchen viel Bit, auch wenn es Beck's ist.

Christian Schiffler
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge