Schlagwort: apache

Apache2: Passwortschutz mit Ausnahmen

Sollen bestimmte Verzeichnisse und Dateien vom .htaccess-Passwortschutz ausgenommen sein, kann dies bspw. wie folgt konfiguriert werden:

AuthType Basic
AuthName "Secure Area"
AuthUserFile /var/www/.htpass

SetEnvIf REQUEST_URI "folder_without_pwd$" ALLOW
SetEnvIf REQUEST_URI "folder_without_pwd/" ALLOW

<RequireAny>
  Require env ALLOW
  Require valid-user
</RequireAny>

Apache2: Wartungsseite für kompletten Vhost

Aktivieren einer temporären Wartungsseite für einen kompletten Vhost, so dass jeder beliebige Aufruf (auch auf Unterordner oder auf einzelne Website-Dateien) auf die Wartungsseite umgeleitet wird:

RewriteEngine on
RewriteRule ^(.*) https://wartung.domain.de/wartung.html [R=302]

Einzufügen als erstes innerhalb von <VirtualHost :443>.

Apache: Umleitung auf verschlüsselte Standard-Domain

Nachdem Marco schon seine Apache-Config zur Umleitung von HTTP-Aufrufen auf HTTPS vorgestellt hat, schließe ich mich gerne an und biete ich eine .htaccess-Alterative:

RewriteEngine On

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

RewriteCond %{SERVER_PORT} !^443
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
  • Alle Domains, die auf den Webspace zeigen, werden mittels Permanent Redirect (HTTP-Status 301) auf die Default-Domain, hier https://www.example.com, umgeleitet.
  • Dadurch wird „duplicate content“ (also die Erreichbarkeit ein und derselben Website über mehrere Domains) vermieden. Stickwort SEO.
  • Alle Aufrufe werden auf HTTPS umgeschrieben. Die Website kann de facto nicht mehr unverschlüsselt aufgerufen werden.
  • Ein eventuell angegebener Pfad bleibt sowohl beim Umschreiben der Domain, als auch bei der Umleitung auf HTTPS erhalten. So wird zum Beispiel http://example.net/folder/file.html auf https://www.example.com/folder/file.html umgeschrieben.

Permanent Redirect auf https in der Apache-Config

Regelmäßig stehe ich vor dem Problem, HTTP-Anfragen auf SSL HTTPS umzuleiten. Die einfachste Lösung ist der Einzeiler Redirect permanent / https://www.example.com. Wem dies genügt und wer ohne mod_rewrite auskommt, der kann hier mit dem Lesen aufhören.
Für meine Anwendungsfälle, habe ich hier eine minimalistische Apache V-Host Config hingepackt:

<Virtualhost *:80>
ServerName example.com
ServerAlias *.example.com
DocumentRoot /var/www/html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
</Virtualhost>

Die drei Zeilen mit „Rewrite“ würden auch problemlos in eine .htaccess-Datei im DocRoot passen. Da besteht allerdings die Gefahr, dass der Webentwickler hier die Hände im Spiel hat und es ist (wenn auch nur minimal bei kleinen Webs oder wenigen V-Hosts) performanter.