Gleicher Shop auf zwei Domains

Hallo,

ich hab zwar schon bischen via Suche gelesen:

Also ich wuerde gerne den Shop sowohl auf der .com Domain, als auch auf der .de Domain laufen lassen. Hintergrund: Google - ich stelle fest, dass fast alle Suchergebnisse bei Google auf .de gehen, das ist aber ein apache-redirect auf die echte Seite (.com).

Diese Suchergebnisse kommen, obwohl bei Google-Webmastertools die .com Seite fuer Deutschland eingetragen sind, fast immer aufs root-webserververzeichnis der .de Domain.
Gezielte Treffer auf CMS-Seiten gibts nur bei .com und da ist das Ranking mies.

Lange Rede… Ich will also den ganzen Shop in ein zweites Verzeichnis packen, die config.inc.php an das Verzeichnis anpassen, aber halt die gleiche DB nutzen. Eventuell noch out und modules Verzeichnisse als symbolischen Link machen, und somit den identischen Shop auf beiden Domains laufen lassen.

Ist das ohne Probleme moeglich, oder uebersehe ich was? bzw. hat jemand da Erfahrung, ob das wirklich bei Google zu besseren Ergebnissen fuehrt?

Gruss

Chris

Was willst du damit erreichen? Das die Seiten von shopdomain.de und shopdomain.com bei Google gelistet werden? Falls das dein Ziel ist, dann vergiss es. Wenn Google den gleichen Content auf verschiedenen Seiten findet, dann listet es die höher eingestufte. Beide werden nicht im Index landen.

Hallo Chris,

dafür gibt’s eigentlich die Basis-URLs in der Sprachverwaltung. Dort könntest Du für Englisch die .com-Seite und für Deutsch die .de-Seite eintragen. Insofern brauchst Du also noch nicht mal die Konfiguration anzufassen.

Schwieriger wird’s bei der Beurteilung des Rankings: Wenn Du von Deutschland aus suchst, wird Deine .de-Domain mit deutschem Inhalt wahrscheinlich immer weiter vorn gerankt sein. Vielleicht kannst Du’s mal mit einem Proxy im Ausland versuchen.

Gruß

[QUOTE=roland76;31437]Was willst du damit erreichen? Das die Seiten von shopdomain.de und shopdomain.com bei Google gelistet werden? Falls das dein Ziel ist, dann vergiss es. Wenn Google den gleichen Content auf verschiedenen Seiten findet, dann listet es die höher eingestufte. Beide werden nicht im Index landen.[/QUOTE]

Nein, es geht mir nur darum, dass Google die .de Seite offenbar hoeher gewichtet, die aber halt nur ein redirekt ist. Unsere Seite ist aber seit 10 Jahren immer .com gewesen.
Suchbegriffe, die wir pushen wollen tauchen aber nur als .com-Seite auf, und dann als Treffer >300 (alles ueber Treffer 20 kann ich in der Pfeife rauchen :wink: tollerweise findet man Seiten, die gar nix mit dem Suchwort zu tun haben auf besseren Plaetzen, natuerlich Server mit .de Domain. Andere Suchwort konnten ganz einfach ohne groessere SEO-Massnahmen in den Top20 platziert werden, verweisen aber nie auf Unterseiten und sind immer auf .de (und der Witz ist, es sind die heiss umkaempften Suchworte)

[QUOTE=Marco Steinhaeuser;31439]Hallo Chris,
dafür gibt’s eigentlich die Basis-URLs in der Sprachverwaltung. Dort könntest Du für Englisch die .com-Seite und für Deutsch die .de-Seite eintragen. Insofern brauchst Du also noch nicht mal die Konfiguration anzufassen.
[/QUOTE]

Unsere Seite enthaelt derzeit nur deutsche Inhalte, d.h. Englisch ist gar nicht gepflegt, und es ist auch nicht geplant die Seite zu uebersetzen.
Ich sehe da gerade unheimlich viel Aufwand am Horizont - alle Inhalte einmal auf Englisch kopieren :wink:
Ein dublizieren des Shop-Verzeichnisses waere da deutlich weniger Aufwand, auch wenn dazu eine eigene IP noetig ist wegen https (und ein weiterer SSL-Key).

Chris

Ich habe ein ähnliches Problem und habe die selbe Lösung bereits eingesetzt. Nun muß ich jedoch noch eine zweite Variable aus der Session auslesen, die ich vor her an anderer Stelle in die Session geschrieben habe. Jedoch habe ich das Problem, dass mir der Wert der Variable aus der Session nicht ausgegeben wird und ich somit meiner Weiterleitung nicht abrufen kann.

Wer kann mir sagen wie ich den Session die Variable “template” in der IF-Abrage abrufen kann?

Auszug aus dem Quelltext der config.inc.php

if (strpos(" “.$_SERVER[‘REQUEST_URI’],”/KLASSIK/") > 0 || oxSession::getVar(‘template’) == “klassik”){
$this->sShopURL = ‘http://www.domain.de’;
$this->sCustomTheme = ‘Theme-Template’;

[QUOTE=franklemm;38503]Ich habe ein ähnliches Problem und habe die selbe Lösung bereits eingesetzt. Nun muß ich jedoch noch eine zweite Variable aus der Session auslesen, die ich vor her an anderer Stelle in die Session geschrieben habe. Jedoch habe ich das Problem, dass mir der Wert der Variable aus der Session nicht ausgegeben wird und ich somit meiner Weiterleitung nicht abrufen kann.

Wer kann mir sagen wie ich den Session die Variable “template” in der IF-Abrage abrufen kann?

Auszug aus dem Quelltext der config.inc.php[/QUOTE]
Zum Zeitpunkt der Verarbeitung der “config.inc.php” ist die Session noch nicht aktiv, das wird da also nichts.

Zudem dürfte in der “REQUEST_URI” “klassik” klein geschrieben sein…

Hi Avenger,

zum besseren Verständnis eine kleine Erklärung zum Hintergund. Ich betreibe eine Multi-Domain Plattform auf einer Installation. Dass heisst, dass ich mit verschiedenen Domainen jeweils eine Kategorie anspreche. Jede Kategorie soll in einem eigenen Template-Set angezeigt werden solange bis die Kategorie gewechselt wird. Um doppelten Content für Google zu vermeiden, übersetze ich die Domainen auf die Hauptdomain und leite Sie über eine Direktorie-Angabe (z.B. /KLASSIK) weiter. Mit der Abfrage der REQUEST_URI funktioniert das auch.

Aber… wenn der User nun auf eine Seite klickt die nicht unterhalb der Kategorie liegt, wechselt alles wieder auf das Haupt-Template. Mit der Session-Abfrage wollte ich nun sicher gehen, dass das Template-Set solange geladen bleibt, bis der User die Kategorie wechselt. Nachdem ich die OXID-Session hierzu nicht nutzen kann an der Stelle, muß ich wohl hierzu eine eigene Session schreiben. Oder hast Du eine andere Idee

Gruß vom Ammersee

[QUOTE=franklemm;38509]Hi Avenger,

zum besseren Verständnis eine kleine Erklärung zum Hintergund. Ich betreibe eine Multi-Domain Plattform auf einer Installation. Dass heisst, dass ich mit verschiedenen Domainen jeweils eine Kategorie anspreche. Jede Kategorie soll in einem eigenen Template-Set angezeigt werden solange bis die Kategorie gewechselt wird. Um doppelten Content für Google zu vermeiden, übersetze ich die Domainen auf die Hauptdomain und leite Sie über eine Direktorie-Angabe (z.B. /KLASSIK) weiter. Mit der Abfrage der REQUEST_URI funktioniert das auch.

Aber… wenn der User nun auf eine Seite klickt die nicht unterhalb der Kategorie liegt, wechselt alles wieder auf das Haupt-Template. Mit der Session-Abfrage wollte ich nun sicher gehen, dass das Template-Set solange geladen bleibt, bis der User die Kategorie wechselt. Nachdem ich die OXID-Session hierzu nicht nutzen kann an der Stelle, muß ich wohl hierzu eine eigene Session schreiben. Oder hast Du eine andere Idee

Gruß vom Ammersee[/QUOTE]
Ich habe ein ähnliches Problem anders (mit Hilfe von mod_rewrite) gelöst.

Ein Kunde von uns betreibt 2 Computer-Shops, einen für Office- und einen für Game-Systeme-

http://beckpc.ch/

Die beiden Shops sind über die URLn

http://beckpc.ch/game/index.php und http://beckpc.ch/soho/index.php erreichbar.

Da die beiden Shops aber mit nur einer Instanz der Shop-Software betrieben werden, gibt es auf dem Server die Verzeichnisse “shop” und “game” physikalisch nicht!

Das Mapping der Verzeichnisse “shop” und “game” auf das Shop-Root-Verzeichnis geschieht mit “mod_rewrite” und folgenden Definitionen in der htaccess:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^game/(.+) $1?rewrite_target=game [QSA] [NC]
RewriteRule ^soho/(.+) $1?rewrite_target=soho [QSA] [NC]

Damit wird erreicht, dass

a.) das Unterverzeichnis eliminiert, und so das Shop-Root-Verzeichnis gefunden wird

b.) der Name des jeweiligen Unterverzeichnisses als zusätzlicher “GET”-Parameter mit dem Namen “rewrite_target” an das Skript übergeben wird.

In der “config.inc.php” kann man das dann wie folgt nutzen (Prinzip):

$subdir=$_GET['rewrite_target'];
if (!$subdir)
{
  $subdir='game';
}
$this->sShopURL='http://beckpc.ch/'.$subdir;
$this->sSSLShopURL='https://beckpc.ch/'.$subdir;
$this->Theme=$subdir.'_template';

So kann man ohne Session den richtigen Kontext und das richtige Template wählen, und die Adresszeile hat immer die richtige URL.

P.S.:

Trinke bei Deinem nächste Besuch im Kloster Andechs doch bitte ein Bier für mich mit… (oder 2, oder 3) :smiley:

Das mit dem rewrite_target ist wahrscheinlich die bessere Lösung. Super, danke für den Tip.

Nun muß ich noch meine .htaccess anpassen. Ich habe jedoch das Problem, dass ich das rewrite_target bereits in der .htaccess einbinden möchte und meine Ergänzungen gerade nicht funktioniert haben:

Meine config.inc.php sieht bisher so aus:

  $aTemplate = oxSession::getVar('template');

if (strpos(" “.$_SERVER[‘REQUEST_URI’],”/KLASSIK/") > 0 || $aTemplate == “klassik”){
$this->sShopURL = ‘http://dev.brands2buy.de’;
$this->sCustomTheme = ‘classic2buy’;
$this->sCompileDir = ‘/www/shopping.lemm2.de/root/tmp/classic2buy’;

} else if (strpos(" “.$_SERVER[‘REQUEST_URI’],”/FILME/") > 0 || $aTemplate == “filme”){
$this->sShopURL = ‘http://dev.brands2buy.de’;
$this->sCustomTheme = ‘movies2buy’;
$this->sCompileDir = ‘/www/shopping.lemm2.de/root/tmp/movies2buy’;

} else if (strpos(" “.$_SERVER[‘REQUEST_URI’],”/GAMES/") > 0 || $aTemplate == “games”){
$this->sShopURL = ‘http://dev.brands2buy.de’;
$this->sCustomTheme = ‘game2buy’;
$this->sCompileDir = ‘/www/shopping.lemm2.de/root/tmp/game2buy’;

} else if (strpos(" “.$_SERVER[‘REQUEST_URI’],”/MUSIK/") > 0 || $aTemplate == “musik”){
$this->sShopURL = ‘http://dev.brands2buy.de’;
$this->sCustomTheme = ‘music2buy’;
$this->sCompileDir = ‘/www/shopping.lemm2.de/root/tmp/music2buy’;

} else if (strpos(" “.$_SERVER[‘REQUEST_URI’],”/KIDS/") > 0 || $aTemplate == “kids”){
$this->sShopURL = ‘http://dev.brands2buy.de’;
$this->sCustomTheme = ‘kids2buy’;
$this->sCompileDir = ‘/www/shopping.lemm2.de/root/tmp/kids2buy’;

} else {
$this->sShopURL = ‘http://dev.brands2buy.de’;
$this->sCustomTheme = ‘brands2buy’;
$this->sCompileDir = ‘/www/shopping.lemm2.de/root/tmp/brands2buy’;
}

Meine .htaccess sieht wie folgt aus:

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^movies2buy.de [NC,OR]
RewriteCond %{HTTP_HOST} ^dev.movies2buy.de [NC]
RewriteRule ^(.*)$ http://dev.brands2buy.de/FILME/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^music2buy.de [NC,OR]
RewriteCond %{HTTP_HOST} ^dev.music2buy.de [NC]
RewriteRule ^(.*)$ http://dev.brands2buy.de/MUSIK/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^classic2buy.de [NC,OR]
RewriteCond %{HTTP_HOST} ^dev.classic2buy.de [NC]
RewriteRule ^(.*)$ http://dev.brands2buy.de/KLASSIK/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^game2buy.de [NC,OR]
RewriteCond %{HTTP_HOST} ^dev.game2buy.de [NC]
RewriteRule ^(.*)$ http://dev.brands2buy.de/GAMES/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^kids2buy.de [NC,OR]
RewriteCond %{HTTP_HOST} ^dev.kids2buy.de [NC]
RewriteRule ^(.*)$ http://dev.brands2buy.de/KIDS/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^shopping.lemm2.de [NC,OR]
RewriteCond %{HTTP_HOST} ^dev.shopping.lemm2.de [NC]
RewriteRule ^(.*)$ http://dev.brands2buy.de/$1 [R=301,L]

RewriteCond %{REQUEST_URI} oxseo.php$
RewriteCond %{QUERY_STRING} mod_rewrite_module_is=off
RewriteRule oxseo.php$ oxseo.php?mod_rewrite_module_is=on [L]

RewriteCond %{REQUEST_URI} !(/admin/|/core/|/export/|/modules/|/out/|/setup/|/tmp/|/views/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !(.html|/|.jpg|.css|.pdf|.doc|.gif|.png|.js)$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{REQUEST_URI} !(/admin/|/core/|/export/|/modules/|/out/|/setup/|/tmp/|/views/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.html|/)$ oxseo.php

</IfModule>

disabling log file access from outside

<FilesMatch “(EXCEPTION_LOG.txt|.log$|.tpl$)”>
order allow,deny
deny from all
</FilesMatch>

Options -Indexes
DirectoryIndex index.php index.html

Das Problem scheint zusein, dass meine Unterverzeichnisse in der URL (z.B. /KLASSIK etc) echte Kategorien im Shop sind. Somit schreibt der Parser die Verzeichnisse bereits in die URL.

Habe gerade echt ein Logikproblem das neu zu ordnen? Über Hilfe wäre ich sehr dankbar, gebe Dir bei Besuch auch gerne ein Bier in Kloster Andechs aus :wink:

Frank

[QUOTE=franklemm;38517]Das mit dem rewrite_target ist wahrscheinlich die bessere Lösung. Super, danke für den Tip.

Nun muß ich noch meine .htaccess anpassen. Ich habe jedoch das Problem, dass ich das rewrite_target bereits in der .htaccess einbinden möchte und meine Ergänzungen gerade nicht funktioniert haben:

Meine config.inc.php sieht bisher so aus:

Meine .htaccess sieht wie folgt aus:

Das Problem scheint zusein, dass meine Unterverzeichnisse in der URL (z.B. /KLASSIK etc) echte Kategorien im Shop sind. Somit schreibt der Parser die Verzeichnisse bereits in die URL.

Habe gerade echt ein Logikproblem das neu zu ordnen? Über Hilfe wäre ich sehr dankbar, gebe Dir bei Besuch auch gerne ein Bier in Kloster Andechs aus :wink:

Frank[/QUOTE]
Was Du wohl erreichen willst, ist, verschiedene Domains auf jeweils eine Kategorie des einen vorhandenen Shops umzuschreiben.

Da hast Du IMO doch eigentlich schon fast alles, um die notwendige Info zu erhalten, wenn Du das richtig machst…

In der htaccess sollten Deine Anweisungen eigentlich ausreichen:


RewriteCond %{HTTP_HOST} ^movies2buy.de [NC,OR]
RewriteCond %{HTTP_HOST} ^dev.movies2buy.de [NC]
RewriteRule ^(.*)$ http://dev.brands2buy.de/FILME/$1 [R=301,L]

Wobei allerdings die Frage ist, ob Du wirklich eine 301 Weiterleitung willst…

Zum einen würde das IMO einen Browser -Roundtrip verursachen, zum anderen würde Google nie die verschiedenen Domains listen, sondern immer nur die “brands2buy.de”.

Dein Fehler ist IMO in der “[B]config.inc.php[/B]” zu finden:

Du darfst “$this->sShopURL” [B]nicht [/B]auf “http://dev.brands2buy.de” setzen, sondern auf die Domain, über die der Server erreicht wurde (also z.B. auf “http://dev.movies2buy.de”)!

Weil andernfalls der Shop ja URLs der Form “http://dev.brands2buy.de/…” generiert, so dass das gewünschte “Rewriting” gar nicht mehr stattfindet, und in der Adresszeile und den Links ja die unerwünschte URL stehen würde.

Den Code in der “[B]config.inc.php[/B]” würde ich wie folgt schreiben (ungetestet):


$categories=array('KLASSIK','FILME','GAMES','MUSIK','KIDS');
$themes=array('classic2buy','movies2buy','game2buy','music2buy','kids2buy');
$request_uri=$_SERVER['REQUEST_URI'];
for ($i=0,$n=sizeof($categories);$i<$n;$i++)
{
  if (stripos($request_uri,'/'.$categories[$i].'/')!==false)
  {
    $theme = $themes[$i];
    break;
  }
}
if (!$theme) 
{
  $theme = 'brands2buy';
}  
$this->sCustomTheme=$theme;
$this->sCompileDir = '/www/shopping.lemm2.de/root/tmp/'.$theme;
$this->sShopURL = 'http://dev.'.$theme.'.de';
$this->sSSLShopURL = 'https://dev.'.$theme.'.de';

Wobei ich allerdings noch der Meinung bin, dass man die Kategorien-Namen [B]klein [/B]schreiben müsste, da die SEO-Urls von OXID ja alle in Kleinschrift generiert werden… ($categories=array(‘klassik’,‘filme’,‘games’,‘musik’,‘kids’))

Wenn Du dann noch in den Templates die Kategorien des Shops, die [B]nicht [/B]der gewählten Domain entsprechen, ausblendest, dann hat man in der Tat den Eindruck, spezialisierte Shops zu besuchen…

Es besteht noch folgende Problematik:

so lange man [B]in den Shop-Kategorien[/B] navigiert braucht man IMO gar kein Rewriting, da der Shop ja schon SEO-URLs generiert, die die Kategorie enthalten (z.B. “dev.classic2buy.de/klassik/mozart/…”).

Ein Rewriting [B]darf/muss[/B] man IMO also erst dann machen, wenn die URL “dev.classic2buy.de” enthält [B]und [/B]"/klassik/" [B]nicht [/B]in der URL enthalten ist…

zum Problem von Chrif:

Wir haben das beim Domainwechsel so gelöst, dass wir im Shop alles auf die neue Domain, also in deinem Fall die .de Domain, umgestellt haben und von der alten Domain, in deinem Fall die .com Domain eine Seite erstellt haben, die direkt auf die neue Domain umleitet.

Beispiel Weiterleitung: http://gesundheits-produkte.com/

Das ist Seo freundlich und effektiv.

mfg

[QUOTE=wohlima;38558]Das ist Seo freundlich und effektiv./QUOTE]
Was ist daran SEO-freundlich?

Damit erreichst Du, dass die Domain gesundheits-produkte.com komplet aus Google verschwindet…

p. jentschura morgenstund site:gesundheits-produkte.com

z,B. liefert keinerlei Ergebnis

p. jentschura morgenstund site:bio-thek.de

hingegen schon.

Mein Bestreben wäre es eher, die Domain gesundheits-produkte.com als eigenständige Domain zu erhalten.

Was man nur durch eine rein interne Umleitung erreichen kann.

Hallo Avenger,
ich verstehe das Problem von Frankleff leider nicht.

Ich bin immer noch dabei - Subdomains auf Kategorien umzuschreiben… bzw. im Versuch.

also: ich habe ca. 10 Subdomains. z.B. Beamer,Beschallung.
beamer.fuerkirchen.de
beschallung.fuerkirchen.de
etc.


RewriteEngine on
RewriteRule ^beamer/(.+) $1?rewrite_target=beamer [QSA] [NC]
RewriteRule ^beschallung/(.+) $1?rewrite_target=beschallung [QSA] [NC]

wie kann ich das machen, dass ich nicht alle Subdomains angeben muss?

und die Config Inc.



$subdomain=$_GET['rewrite_target'];
$categorie=$_GET['rewrite_target'];
$this->sShopURL='http://'$subdomain'.fuerkirchen.de/'$categorie;
$this->sSSLShopURL='http://'$subdomain'.fuerkirchen.de/'$categorie;


Ich verstehe noch nicht - ob der Shop das dann kapiert - dass er in der Kategorie landen soll…
Oder denke ich falsch?