Rewrite Apache auf https, nur eine Domain von mehreren mit selbem document-root



aerius

New Member
Hi all,

ich habe verschiedene domains, die alle den gleichen document-root auf meinem Webserver haben.
Es werden dann vom php je nach domain andere Inhalte geladen.

Jetzt möchte ich nur für eine dieser domains (login.xyz.de, also den Login Inhalt für den ich auch ein passenden SSL Zertifikat habe) https erzwingen. Aktuell gehen immer beide Protokolle.

Geht das denn? Denn die anderen Domains mit dem gleichen document-root sollen nat. weiterhin mit http laufen (da passt ja auch das Zert gar nicht dazu).

Wenn z.B. per .htaccess Datei, wie müsste die dann aussehen?
klappt das evtl. mit ner abgewandelten Version von sowas?:
Code:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} http://login.xyz.de$ [NC]
RewriteRule ^(.*) https://login.xyz.de [L,R=301]
</IfModule>
leider bin kenn ich mich mit der Syntax hier nicht wirklich aus, sind sicher Fehler drinnen :(

1000Dank im Voraus.
VG
 
Last edited by a moderator:
Code:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^login\.xyz\.de$ [NC]
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://login.xyz.de/$1 [L,R=301]

;)
 
Ohh traumhaft Danke Gwen werde ich gleich ausprobieren! :)

@Joe: Die Variante müsste wohin? Sorry für meine Unweissenheit :o

vg
 
weil es gleich alle Domains umleitet und nicht nur eine Einzelne raus filtert.
Was hast Du an "In den VirtualHost-Container für login.example.com:80" nicht verstanden?

Willst Du mal wieder einen sinnfreien Streit provozieren, oder was soll die Unterstellung ich würde eine unpraktikabele Lösung liefern? Soll ich Dir tatsächlich die Apache-Doku vorlesen?
Und wie sieht bitte die Deiner Meinung nach praktikabelste Lösung aus und weshalb? Wir wollen ja nicht, dass ich unwissend sterbe...
 
Unabhängig davon, ob nun der erste Denkansatz des TO oder eine andere praktikable(re) Lösung zum Ziel führen sollte, stelle ich mir gerade die Frage, warum nur der Login verschlüsselt werden soll und der restliche Datenaustausch 'im Klartext' erfolgen soll...?
 
Willst Du mal wieder einen sinnfreien Streit provozieren
Falls das wirklich meine Intention war, bist Du mir voll auf den Leim gegangen. :D
War es aber nicht. Du scheiterst mal wieder an der Einschätzung der Gesamtsituation: Die Art der Fragen und Antworten und dem Faktum, dass Plesk im Spiel ist.
Daraus ergibt sich ein Gesamtbild, welches Deinen Lösungsansatz, welcher mit einer provozierenden Frage eingeleitet wurde, nicht so einfach umsetzbar macht. Im Gegenteil, sorgst Du damit nur für unnötige Verwirrung.
Die Lösung von GwenDragon hingegen ist genau passend, simpel und einfach in einer .htaccess umsetzbar.

huschi.
 
Gerade weil Pest im Spiel ist, ist Redirect[Match] genau die richtige Lösung, da durch Pest ein VirtualHost-Container für login.example.com:80 existiert und die entsprechende vhost.conf oder wie auch immer Pest sie bezeichnet lediglich um den Redirect ergänzt werden muss. Ganz unkompliziert, praktikabel und selbst vom DAU problemlos durchzuführen.

mod_rewrite ist hingegen kompliziert, unpraktikabel und definitiv nicht problemlos vom DAU verwendbar. Desweiteren frisst mod_rewrite unnötig Ressourcen und bremst die Requests aus.
Darüberhinaus ist eine Prüfung auf HTTPS=on in einem VirtualHost-Container für Port 80 ziehmlich überflüssig und bremst zusätzlich. Wenn Du soetwas als praktikabel und/oder sinnvoll oder gar richtig bezeichnest, dann solltest Du dringend die Branche wechseln.

BTW: Was passiert eigentlich, wenn die .htaccess versehentlich überschrieben oder gelöscht wird (soll bei Installationen/Updates diverser WebApps schon mehrfach vorgekommen sein)? Sehr praktikabel soetwas, wirklich...
 
Interessant, was aus der Frage als Anforderung rausgelesen wurde und was als sinnvoll erachtet wird.
Und wo was jetzt seitens des Fragenden in welcher Konfig stehen soll, das hat meine Glaskugel nicht rausgebracht. Für mich ging es nur um die Handhabung eines Redirects mittels mod_rewrite.
An Effizienz oder irgendwelche dahinter liegenden Administrationsoberflächen und konfigurationszerstörenden Anwendungen dachte ich nicht.
mein Beispiel war eben zu theoretisch. :eek:

Klar ist ein RedirectMatch auch zum Ziel führend.
 
@Joe
Wow Du kannst mal richtig gute und ausführliche Beschreibungen abgeben.
Deine erste Antwort im Vergleich zu dieser war Schrott, musst Du doch selbst zugeben.
Warum nicht gleich so?

huschi.
 
Last edited by a moderator:
Wow Du kannst mal richtig gute und ausführliche Beschreibungen abgeben.
Naja, als ausführlich würde ich es nicht bezeichnen, aber trotzdem danke.

Deine erste Antwort im Vergleich zu dieser war Schrott, musst Du doch selbst zugeben.
Dito. EOD.

Warum nicht gleich so?
Weil ich diese Art Antworten schlicht von Dir erwarte, schliesslich bist Du der allwissende Huschi und ich nur der dumme Joe User. Denn mir ist beim Lesen des ersten Post dieses Threads tatsächlich weder das Wort Plesk noch die Anforderungen "muss mod_rewrite sein" und "muss .htaccess sein" aufgefallen. Also Respekt für Deine untrügerische Auffassungsgabe und Interpretierungsfähigkeit, welche mir offensichtlich fehlen und weshalb ich Dich völlig zu Unrecht kritisiert habe. Sorry.

Im Ernst: Das Thema mod_rewrite vs Redirect[Match] hatten wir nun schon so oft, dass es mich verwundert, warum noch immer mod_rewrite dafür misbraucht wird. Und dass ausgerechnet Du mod_rewrite hier bevorzugst, finde ich angesichts Deines Jobs extrem erschreckend, weshalb ich dann auch entsprechend reagiere. Alles was ich an Begründungen pro Redirect[Match] anführte, hätte schon in Deinem ersten Post stehen müssen, schliesslich weisst Du als Forensiker das Alles schon von berufswegen erheblich besser als ich.

Egal, EOD please.
 
Und dass ausgerechnet Du mod_rewrite hier bevorzugst, finde ich angesichts Deines Jobs extrem erschreckend
Im Gegensatz zu Dir verdiene ich tatsächlich Geld in dieser Branche. Allerdings kann ich meine selbst auszuführende Arbeit und eine schnelle einfache Hilfe für Linux-Anfänger von einander trennen.

Egal, EOD please.
Es ist ziemlich unhöflich mit Vorwürfen um sich zu schmeißen und dann dem Gegenüber den Mund zu verbieten.
Aber so ist halt Dein Charakter. q.e.d.

huschi.
 
Ok, Kritik kann angebracht sein.
Aber wie stark sich nun uneffiziente Vorschläge wie mein rewrite auswirken können, sagt Joe User nicht.
Stattdessen nur ein: das macht man nicht.

@Joe User
Welche Erfahrungen hast du nun dazu um wieviel % vorgesdhlagene mod_rewrites verlangsamen.
 
@Joe User
Welche Erfahrungen hast du nun dazu um wieviel % vorgesdhlagene mod_rewrites verlangsamen.
Die von Dir vorgeschlage Rewriterule bremst jeden Request der die Rule durchläuft von etlichen ns bis zu mehrere ms (abhängig von den zur Verfügung stehenden Ressourcen). Hinzu kommt der Speicherverbrauch von mod_rewrite selbst und aller existierenden RewriteRules zusammen. Werden die Rules durchlaufen, kommt nochmal Speicher für die Verarbeitung der Regex und das Ablegen von Variablen (ENV, Flags, Statuscodes, etc) hinzu. Das Reservieren, Füllen, Auslesen und Schliessen der notwendigen Speicherseiten kostet zudem zusätzlich wertvolle Zeit, welche für jeden einzelnen Request neu anfallen.

Auf einem gut ausgelastetem System kommt man hier im Worst-Case durchaus schon auf >0,1% für jede einzelne solch simpler RewriteRules. Komplexe Rules sind noch erheblich hungriger...


Meine Redirect-Zeile kostet hingegen selbst auf ausgelasteten Systemen nur wenige ns und nur einmalig (pro Prozess) eine handvoll Speicherseiten.

Ich habe also selbst mit 100 Redirects nichtmal ansatzweise die Ressourcen Deines einzelnen Rewrites verbraucht.
 
oops da ab ich was angezettelt :eek:

Da ich ja vorher schon bissel recherchiert hatte, dachte ich das muss mit dem rewrite_mod gehen, die andere Variante kannte ich nicht.

Muss aber sagen Big Thx at Joe, hab die Variante gerade gestetet, funzt wunderbar :) :)
Bin begeistert, super vielen Dank.

Der ausührliche post hat mir nochmal geholfen (stimmt es ist sogar plesk im spiel, hatte ich aber ja gar nicht erwähnt) ...

hab im conf-folder der subdomain, die vhost.conf erstellt, Zeile rein, die config mit
/usr/local/psa/admin/sbin/httpdmng --reconfigure-domain <domain_name>
neu geladen und schon ging es, wirklich super.

Mehere Varianten zu haben ist ja immer gut, Gwen hatte mehr oder weniger die direkte antwort auf die frage gewusst und joe eine Alternative, beides sehr hilfreich so muss es in nem Forum sein, big THX nochmal :)

@nexus: das zertifikat passt nur fuer die subdomain, und bei den anderen domains gibts es keinen wirklich austausch von daten wie passwort o.Ä. da wird nur homepage content geladen.

VG
 
@Joe User
Danke für die Erläuterung.
Ich dachte, dass die Requests bei Rwrite im Bereich von max 20ns liegen. Dass aber wenns hoch kommt dann es Millisekunden sein können und das ca. 1 Promille der Resourcen kostet, kannte ich nicht.
 
hi zusammen,

hab noch eine kurze Anschlussfrage, bei einer anderen test domain möchte ich non-www auf www umleiten, aktuell geht beides.

ich erstelle eine vhost.conf der domain im conf Ordner mit folgendem Inhalt:

Code:
  ServerName example-domain.de
  Redirect 301 / http://www.example-domain.de/

aber danach geht gar nichts mehr :confused:
Seite kann nicht mehr angezeigt werden im Browser (www und non-www)... ist mein Befehl falsch? :(


1000Dank und VG
 
Back
Top