Wo ist das denn eingefügt und wie? Und was SOLL diese Bedingung denn bewirken?
Was aber auch auffällt, ist die komische Namensgebung - "einhost.de" klingt eigentlich nach einem Domainnamen, aber es ist eine Datei oder ein Ordner?
Nur um mal ein Beispiel zu nennen:
Wenn Du
http://localhost/einhost.de/index.html in den Browser eingibst, ist die Bedingung
- Code: Select all
RewriteCond %{REQUEST_URI} !^/einhost.de
WAHR. Denn die URI ist NICHT /einhost.de, sondern /einhost.de/index.html - ist das wirklich das, was Du willst?
Ich vermute mal, dass Du IMMER dann NICHTS machen willst, wenn am Anfang /einhost.de steht. Das könnte man auch mit einer weiteren RewriteRule und einem Skip bewerkstelligen:
- Code: Select all
RewriteCond %{HTTPS} off
RewriteRule "^/einhost\.de" "-" [S=1]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Die RewriteRule mit einhost.de leitet auf "-" um, das ist der Metasyntax für "ungeänderte URL". Der Flag S bedeutet "Skip", die zugewiesene Zahl (hier S=1) nennt die Anzahl nachfolgender Anweisungen, die übersprungen werden sollen (in diesem Fall reicht die eine Zeile). In manchen Serverkonfigurationen kann am Anfang der URI der Slash fehlen, im Fall des Falles auch dieses Pattern probieren:
- Code: Select all
RewriteCond %{HTTPS} off
RewriteRule "^einhost\.de" "-" [S=1]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Ist sonst genau das gleiche, nur der Slash vor "einhost.de" ist nicht vorhanden. Den Punkt "." sollte man mit Backslash escapen, denn ein Punkt ist ein Sonderzeichen und erlaubt JEDES Zeichen an dieser Stelle.