.htaccess redirect

  • Guten Morgen zusammen,

    eigentlich habe ich nur versucht eine (vermutlich) einfache .htaccess zu erstellen, um von einer Domain auf eine andere Umzuleiten. In meinem Beispiel von einer .de auf eine .com.

    Wenn ich mich aber auf den verschiedensten Seiten dazu einlese, gibt es gefühlt 10 verschiedene Methoden, und trotz Erklärungen erschließt sich mir manchmal der Sinn nicht, deswegen dieser Theard.

    Aktuell habe ich folgendes in meiner .htaccess stehen:

    Das funktioniert soweit auch (Chrome unter Windwos), allerdings bin ich gerade bei solchen Dingen immer auf der Suche nach der "perfekten Lösung".

    Wieso wird auf vielen anderen Seiten erwähnt, das zwingend RewriteEngine On

    Die Frage wäre auch, ob nicht folgende Lösung besser wäre. Wenn ich das richtig verstanden habe, würden alle Anfragen auf die .de-Domain (auch mit weitergehenden Pfaden) auf die angegeben Adresse weitergeleitet werden. Auch hier wieder: Brauche ich RewriteEngine On, und wenn ja warum?

    Zitat von .htaccess #2

    RewriteCond %{REQUEST_URI} (.*)
    RewriteRule ^(.*)$ https://www.netcup.de/ [L,R=301]

    Merce euch,

    Bud

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Mit anderen Worten: Beide Beispiele waren für meinen Zweck falsch.
    Theoretisch sollte ich dann folgendes verwenden, um alle Anfragen alle Pfade auf die .de-Domain umzuleiten, oder?
    RedirectMatch 301 .* http://netcup.com

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewriteengine

    https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewriterule

    https://httpd.apache.org/docs/2.4/rewrite/remapping.html#canonicalhost


    Das Beispiel im "Canonical Host" Abschnitt stammt wohl aus der Zeit vor LetsEncrypt und enthält das feste Schema http:

    Apache Configuration
    RewriteCond "%{HTTP_HOST}"   "!^www\.example\.com" [NC]
    RewriteCond "%{HTTP_HOST}"   "!^$"
    RewriteRule "^/?(.*)"        "http://www.example.com/$1" [L,R,NE]

    Das sollte man noch durch %{REQUEST_SCHEME} oder fest durch https ersetzen.

    Die RewriteConds testen, ob nicht schon der "richtige" Hostname verwendet wurde und ob der Hostname nicht leer ist. "/?" in der RewriteRule ist für den Fall, dass dieser Regelsatz in der Serverkonfiguration verwendet wird. In der .htaccess kann der zu matchende Pfad nicht mit einem "/" anfangen. R=301 statt R macht aus dem temporären Redirect einen permanenten Redirect, sagt also dem Client, dass er in Zukunft gleich die neue Adresse verwenden soll.


    Hier mal eine kurzer Vergleich zwischen Redirect (Client) und Rewrite (Server)

    Redirect und RedirectMatch können nicht auf den Hostnamen prüfen, sind also für diesen Zweck nicht das Mittel der Wahl. Auch RewriteRule kann externe Redirects veranlassen (das 'R' in den Flags der RewriteRule).

  • OT und Funfact: Mein Wissen beschränkt sich bei htaccess eher auf sowas einfaches wie "Redirect 301 / https://anderedomain.tld". Ich war durchaus beeindruckt, dass mir chatgpt kürzlich recht gut unterschiedliche Weiterleitungsarten aufgedröselt hat, und mir konkret auf Nachfrage auch Vor- und Nachteile und Sinn von einzelnen Methoden erklärt hat oder es verständlicher ausgedrückt hat. :D Mangels Kompetenz kann ich die Erklärungen natürlich nicht bewerten .... und die KI wollte mir durchaus auch schon bei Tests in Bereichen wo ich mich auskenne hanebüchenen Unsinn unterjubeln. =O

  • Ich bin verwirrter als vorher, vermutlich einfach auch weil ich nicht verstehe warum man so viele unterschiedliche Möglichkeiten der Weiterleitung überhaupt brauchen sollte...


    https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect

    Also wenn ich jetzt einfach nur alle unter .de aufgerufenen Pfade auf die "Startseite" der .com umleiten möchte, nutze ich Redirect 301 "https://netcup.com"?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Ich war durchaus beeindruckt, dass mir chatgpt kürzlich recht gut unterschiedliche Weiterleitungsarten aufgedröselt hat

    Dann können wir das ja hier sein lassen. Es ist mir ein Rätsel, warum niemand sieht, dass diese "AIs" Plagiatmaschinen sind. Glaubst du wirklich, die "AI" hat sich diese Erklärungen selbst ausgedacht? Meine Bereitschaft, öffentlich zu helfen, sinkt rapide.


    Also wenn ich jetzt einfach nur alle unter .de aufgerufenen Pfade auf die "Startseite" der .com umleiten möchte, nutze ich Redirect 301 "https://netcup.com"?

    Im Prinzip ja, aber will man das? Außerdem musst du aufpassen, dass du Redirect-Schleifen vermeidest. Falls mehrere Domains aus dem selben Dokumentenstamm bedient werden, musst du das irgendwie abfangen. Wenn im Beispiel "netcup.com" auch diese .htaccess verwendet, dann geht es sonst endlos im Kreis herum.

  • Ich versuche mal möglichst genau zu erklären was ich möchte.

    Ich habe zwei .de Domains bei netcup:
    http://www.meinedomain.de & http://www.meine-domain.de

    Diese sollen auf eine WIX Seite unter .com weiterleiten:
    http://www.meineseite.com

    Beide .de-Domains landen im selben Verzeichnis, in der einzig und allein eine .htaccess liegt.
    Diese .htaccess soll nun jeden Pfad der aufgerufen wird und in dieses Verzeichnis steuert, also z.B.

    auf https://www.meinedomain.com weiterleiten.

    Und eigentlich habe ich das immer direkt über das CCP erledigt, allerdings hatte KB19 erst vor kurzem gemeint, das wäre gar nicht so gut: Wie kann man eine Domain als "Alias-Domain" definieren?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Soll deinedomain.de/asd auf deinedomain.com weiterleiten, oder auf deinedomain.com/asd ?

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

    Gefällt mir 1
  • Soll deinedomain.de/asd auf deinedomain.com weiterleiten, oder auf deinedomain.com/asd ?

    Ersteres. Also alle Pfade auf die Startseite der .com Domain. Deswegen dachte ich das ich mit meiner zweiten Lösung eigentlich ziemlich gut fahre...

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • In dem Fall geht der einfache Redirect mit Redirect 301 "https://www.meinedomain.com/"


    Die Zieldomain wird nicht aus dem selben Dokumentenstamm bedient, also gibt es keine Schleife. Alle aus dem Dokumentenstamm bedienten Domains sollen umgeleitet werden, also muss auch der verwendete Hostname nicht abgefragt werden.

  • Die Zieldomain wird nicht aus dem selben Dokumentenstamm bedient, also gibt es keine Schleife. Alle aus dem Dokumentenstamm bedienten Domains sollen umgeleitet werden, also muss auch der verwendete Hostname nicht abgefragt werden.

    Danke dir NaN - besser als jede KI ;)

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Aber das bringt mir doch nichts, wenn der Pfad unter .com nicht existiert?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Ersteres. Also alle Pfade auf die Startseite der .com Domain. Deswegen dachte ich das ich mit meiner zweiten Lösung eigentlich ziemlich gut fahre...

    In dem Fall, einfach RedirectMatch mit .* („alles“) als source und https://zieldomain.com/ als target.


    EDIT: zu spät :)

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

    Einmal editiert, zuletzt von mfnalex ()

    Gefällt mir 1
  • Aber das bringt mir doch nichts, wenn der Pfad unter .com nicht existiert?

    In der Regel will man das, aber in dem Fall nicht. Das Modul, aus dem diese Direktive kommt, heißt "mod_alias". Gedacht ist das schon dem Namen nach dafür, dass bestimmte URIs Aliase für andere URIs sind, und das betrifft meist ganze URI-Mengen, z.B. wenn man eine Website umbaut oder auf eine andere Domain umzieht. Wenn man Domains nur als Werbung für eine andere Website einsetzt, ist das was anderes.

  • Okay, vielen Dank für Eure Hilfe. Also ist RedirectMatch dann doch die bessere Option.

    Abschließend dann noch die Frage zum besseren Verständnis: Was ist denn der praktische oder gravierende Unterschied zwischen Redirect 301 "https://netcup.com" und RedirectMatch 301 .* https://netcup.com ist. In beiden Fällen werde ich - egal welches Verzeichnis ich aufrufe - auf netcup.com weitergeleitet.

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Es macht tatsächlich keinen Unterschied, weil es auf ein Detail ankommt. Ich habe es gerade ausprobiert: Der Pfad wird nur dann angehängt, wenn ein Pfadpräfix in der Direktive angegeben wird.

    Redirect 301 "https://netcup.com/" leitet von example.com/pfad zu netcup.com/ um.

    Redirect 301 / "https://netcup.com/" leitet von example.com/pfad zu netcup.com/pfad um. (Und aufpassen: Der Pfad ohne den matchenden Anfang wird angehängt, also im Beispiel ohne den ersten /. Wenn das Ziel keinen Schrägstrich am Ende hat, gibt es Durcheinander.)

  • Guten Morgen zusammen, ich habe nun eine anschließende Frage zum Thema, nur mit einem anderem Ziel.


    Wir haben eine LimeSurvey Installation auf umfrage.verein.de laufen. Wenn man die Subdomain an sich aufruft, kommt man auf eine Startseite von LimeSurvey, welche eigentlich dazu gedacht ist das sich die Mitglieder bzw. Umfrageteilnehmer anmelden können etc.
    Da wir das aber nicht nutzen, würden ich gerne den "blanken" Zugriff auf die Subdomain auf die Hauptdomain umleiten.


    Das habe ich mit Redirect 301 /index.php https://verein.de und Redirect 301 / https://verein.de versucht, aber ein Problem ist für mich, das die URLs zu den erstellen Umfragen ebenfalls über die index.php laufen, und weitergeleitet werden.

    Die URLs lauten entweder https://umfrage.verein.de/netcupForum oder https://umfrage.verein.de/index.php/123456

    Wie bekomme ich es also hin das nur folgende "direkte" Zugriffe umgeleitet werden, und ich nachfolgendes ausschließe?
    https://umfrage.verein.de
    https://umfrage.verein.de/index.php

    Ich habe mich schon zu Tode gesucht, aber nichts vernünftiges gefunden, was vergleichbar mit meinem Problem wäre...

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE