blog.bartlweb - a technologist's external brain

Thema: Apache

Zugriff von externen IP’s auf HTTPS umleiten

Um per Apache und mod_rewrite den Zugriff im internen LAN über Http und von Extern nur per Https zu gestatten ist folgende Rewrite-Condition hilfreich:

RewriteEngine On
RewriteCond %{HTTPS} Off
RewriteCond %{REMOTE_ADDR} !^192\.168\.10
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Ladezeit von Webseiten optimieren

Ein schneller Webserver ist kein garant für den schnellen Aufbau einer Webseite im Browser des Clients. Die unten angeführten Punkte helfen bei der Optimierung der Ladezeiten.

Tools für die Ladezeiten-Analyse

9 Tipps für optimierte Ladezeiten

Dateien säubern

Liefern Sie Ihre CSS, JS und HTML/PHP Dateien gesäubert aus. Entfernen Sie unnötige Kommentare, Leerzeichen und Leerzeilen. JS-Libraries sollten immer in der vorliegenden Minified-Version verwendet werden. Auch eigene JS und CSS-Dateien können durch spezielle "Minifier" verkleinert werden, meistens sind diese jedoch sehr fehleranfällig.

Typo3 Backend auf HTTPS umleiten

Gerade bei heiklen Informationen ist es oft erwünscht diese nicht in Klartext durchs Internet zu schicken. Abhilfe schafft in solchen Fällen HTTPS. Um beim Zugriff auf das Typo3-Backend automatisch von http auf https zu wechseln hilft mod_rewrite. Passen Sie dazu die .htaccess-Datei im root-Verzeichnis der Typo3-Installation an.

Für eine Standardinstallation von Typo3, sollte die .htaccess-Datei dann so aussehen.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^typo3/(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteRule ^(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)/ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]

WordPress Backend (wp-admin) auf HTTPS umleiten

Um das Backend von WordPress (wp-admin) inkl. Login automatisch auf https umzuleiten, ergänzen Sie die .htaccess-Datei im Root-Verzeichnis der WordPress-Installation nach rewriteBase / um folgende 4 Zeilen:

RewriteCond %{HTTPS} off
RewriteRule ^wp-login.php(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^wp-admin/(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Langsamer Datentransfer von Win32 Apache

Gerade bei Transfers von großen Datendatein von einem unter Windows betriebenen Apache-Server fallen die langsamen Transferraten auf. Schuld daran ist die fehlerhafte Unterstützung von sendfile. Um dieses zu deaktivieren wird die Apache-Konfigurations-Direktive "EnableSendfile verwendet".

<Directory "/pfadangabe">
...
EnableSendfile Off
</Directory>

Redirect IE6 via Apache Rewrite

Immer öfter kommt es vor, dass man bei diversen Webprojekten oder für seinen gesamten Webauftritt IE6 nicht mehr unterstützen möchte. Um nun alle IE6 Benutzer auf einen "Bitte updaten"-Seite zu leiten kann man Apaches mod_rewrite nutzen. Der folgende Code leitet alle IE6 Benutzer an eine eigene Subdomain weiter.

IE6 umleiten

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\s*\(compatible;\s*MSIE\s*6\.0
RewriteRule  (.*) http://noie6.bartlweb.net/ [R=301,L]

alles <= IE6 umleiten

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\s*\(compatible;\s*MSIE\s*(1|2|3|4|5|6)\.
http://noie6.bartlweb.net/ [R=301,L]

alles <= IE6 umleiten, aber IEMobile 6.0 zulassen

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\s*\(compatible;\s*MSIE\s*(1|2|3|4|5|6)\.(?!.*IEMobile)
RewriteRule  (.*) http://noie6.bartlweb.net/ [R=301,L]

Datenkompression mit Apaches mod_deflate

Schon seit geraumer Zeit unterstützen diverse Browser und der Apache Webserver die komprimierte Übertragung von plaintext-Dateien (html, php, css, txt).

Dazu werden die beiden Apache-Module mod_deflate und mod_headers benötigt.

Konfiguration

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/x-js application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary

Überprüfen der Kompressionsraten

Die folgende Konfiguration schreibt die Kompressionsraten in die Logdatei:

DeflateFilterNote deflate_ratio
LogFormat "%v %h %l %u %t \"%r\" %>s %b mod_deflate: %{deflate_ratio}n pct." vhost_with_deflate_info
CustomLog logs/deflate_access_log vhost_with_deflate_info