Apache / httpd

Apache Error log / debugging

Apache does not start up or other debugging is required:

  • /etc/init.d/apache2 status
  • journalctl -xn
  • tail -n 50 /var/log/apache2/error.log

Config finden

Um herauszufinden wo die verwendete httpd.conf Datei liegt kann die Option "-V" (großer Buchstabe "V") verwendet werden:

# mac os-x
apachectl -V

# linux 
apache2 -V

Add trailing slash if file/directory/symlink does not exist

.htaccess:

# redirect to "slashed" virtual directories
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=303,L]

Für Verwendung in der httpd.conf muss jedem "%{REQUEST_FILENAME}" noch "%{DOCUMENT_ROOT}" vorangestellt werden.

.htaccess Umleitung von non-www zu www-Version (und vize-versa)

ACHTUNG: Bevor man sich dazu entscheidet eine Webseite ohne "www" zur Verfügung zu stellen, sollte man beachten, dass Cookies ohne Subdomain für sämtliche Subdomains zur Verfügung stehen.

Das ist zwar nicht zwangsläufig falsch aber in manchen Fällen unerwünscht.

Weiteres ACHTUNG: Da manche Browser die Weiterleitung sehr aggressiv cachen empfiehlt es sich zum Testen ein 302 (Found) zu verwenden und erst nach erfolgreichem Test auf 301 (Moved Permanently) umzustellen.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^skanto\.de
RewriteRule (.*) http://www.skanto.de/$1 [R=301,L]

Analog funktioniert es anders herum von der www zur nicht-www Version:

RewriteCond %{HTTP_HOST} ^www\.skanto\.de$ [NC]
RewriteRule ^(.*)$ http://skanto.de/$1 [R=301,L]

oder generisch (für http und https von non-ww zu www):

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

Enable http/2

  • mod_php not supported, use php-fpm (install and configure php-fpm, a2dismod php)
  • mpm_prefork not supported use mpm_event instead (a2dismod mpm_prefork, a2enmod mpm_event)
  • a2enmod http2
  • In your VirtualHost set 'Protocols h2 http/1.1'

Good resource for installation instructions see http2.pro website.

Feedback
Wir bearbeiten Dein Feedback aus diesem Formular über gitlab.com – Du kannst das E-Mail Feld leer lassen, falls Du keine Antwort von uns erwartest. Alternative Kontaktmöglichkeiten findest Du im Impressum.