OpenCart 3 Multidomain + Multishop

  • Und, nur um die htaccess auszuschließen, in der mal die Zeilen 149, 150 und 151 auskommentieren. Nicht löschen. Das sind aber die einzigen, die die robots.txt weiterleiten könnten. Sollten sie aber eigentlich nicht, dennoch, mal als Test.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Jetzt müssteste eigentlich "nur noch" den Store entsprechend anlegen und am besten irgendwas ändern, das direkt auffällt, dass man unterscheiden kann, ob der deutsche oder der schweizer angezeigt wird. Das ist nun aber Aufgabe des Shops.

    Und bei Deinen manuellen Weiterleitungen in der Htaccess, also bei denen da (allen)

    Apache Configuration
    RewriteRule ^image/cache/catalog/seidentücher/chiffon\s3,5/([\w\-_\s,/\.]+)\.webp$ https://www.domain.de/image/cache/catalog/seidentuecher/chiffon_35/$1.webp [L,NC,R=301]

    Entferne da bei allen die Domain, sodass das Ziel einfach nur mit einem Slash beginnt.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Mir ist nur immer noch nicht klar, wie der shop wissen will, was er bei welcher URL anzeigen soll.
    Ich finde da keine Weiche oder sowas.

    Die Weiche ist die Domain oder sub. Wenn da domain.de angefragt wird, dann der eine Shop und wenn domain.ch angefragt wird, der neue Shop, der angelegt werden muss.

    Daher geht das ja nicht mit "Ordnern". Das geht alles über die Domain. Da kannste theoretisch so viele aufschalten wie Du magst als Alias und dann eben als neuen Store einrichten.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Ich sehe den Unterschied am Warenkorb. Beim einen steht 0,00€, beim anderen CHF0,00

    Musst nun quasi alles anpassen. Auch Titel z.B. die Startseite heißt nun einfach nur "test". Template anpassen, wenn gewünscht, Produkte zuordnen, kann man ja alle einzelne und muss nicht alles übernehmen etc.

    Und die manuellen Weiterleitungen nicht vergessen zu ändern, denn die würden einen ja sonst auch direkt nach DE schicken.

    Die Weiterleitung in Plesk kannste auslassen, denn das ganze Zeug mit www nach ohne oder umgedreht sowie nach SSL haste ja alles in der htaccess stehen.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Öhm... und wie mach ich das jetzt, wenn ich die Domain domain.ch für ein paar Tage vor Publikum und bots verstecken will?
    Ich kann da ja keine .htaccess-Sperre anlegen, weil die ja für domain.de und domain.ch gilt, oder?

    Wer zuerst "Datenschutz" sagt, hat verloren.

  • Verstecken... Das ist eine gute Frage. Du hast nur eine htaccess.... Die ist für beide verantwortlich.

    Du kannst in der also alles machen wie bisher auch, nur musst Du halt immer vorher prüfen / festlegen, für welche Domain die Anweisung dann zählt, sonst zählt sie für beide.

    Wenn Du mit Sperre so was wie einen Passwortschutz meinst, dann kannste den ja auch auf eine bestimmte Domain binden, so wie z.B. auch nur auf einen bestimmten Ordner. Du musst da immer nur eben in den Bedingungen mit berücksichtigen, dass Du den Host mit abfragst / prüfst.

    Robots.txt könnte man zwei anlegen und per htaccess umbiegen, das geht. Also eine robots-de.txt und eine robots-ch.txt, die nur intern anders sind und nach außen beide als robots.txt auftreten, nur mit unterschiedlichem Inhalt.

    Bei der htaccess selbst geht das nicht, denn die gibt der vHost vor und da kann es nur eine geben, daher innerhalb filtern, was für was zählt, wenn es Unterschiede geben soll.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • "und wie mach ich das jetzt, wenn ich die Domain domain.ch für ein paar Tage vor Publikum und bots verstecken will?"

    Wie würdest Du das denn bisher machen? Hast da mal ein Code-Beispiel dafür? Dann sieht man ja, was man ändern kann und muss.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Möglichkeiten gibt es da mehrere. Also per Rewrite, wie wir das schon haben oder eben per Apache direkt... So was z.B.

    Apache Configuration
    # greift nur bei domain.ch, nicht bei www.domain.ch oder anderen
    # Exact-Match per ==
    <If "%{HTTP_HOST} == 'domain.ch'">
        AuthType Basic
        AuthName "Password Protected Area"
        AuthUserFile /my/path/to/.htpasswd
        require valid-user
    </If>

    Der Inhalt ist nun egal und nur ein Beispiel. Entscheidend ist das <if>, denn darin wird der %{HTTP_HOST} abgefragt. In dem Fall wäre der Passwortschutz für den kompletten Host "domain.ch" (nicht für http://www.domain.ch), aber eben nicht für andere. Und in das <if> kann man im Grunde alles einbauen, was man sonst so in der Htaccess auch hat. Also auch IP sperren, andere Expires, Header etc. Man muss nur beachten, dass man dann eventuell zwei solche Blöcke braucht, also quasi ein if-else. Kommt aber auf den speziellen Fall an.

    Und da geht eben alles. Direkter Sting-Vergleich (exakt, so wie oben im Beispiel), oder "AND" und "OR", Regex etc....

    https://httpd.apache.org/docs/2.4/expr.html

    Code
    # greift nur bei domain.ch und bei www.domain.ch, nichts anderes
    # Als OR-Bedingung per ||. Beides Exakt-Match per ==
    <If "%{HTTP_HOST} == 'domain.ch' || %{HTTP_HOST} == 'www.domain.ch'">
    Code
    # greift bei allen Subs von domain.ch
    # das =~ bedeutet Regex-Vergleich
    # daher egal was, es muss nur domain.ch vorkommen
    <If "%{HTTP_HOST} =~ /domain\.ch/">

    So kann man sich also innerhalb einer htaccess zwei Bereiche oder mehrere für verschiedene Hosts anlegen. Mehr oder weniger genauso wie beim vHost mit SSL und ohne. Sind auch zwei Blöcke, der eine regiert auf Port 80, der andere auf 443.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(