Seite 1 von 1

.htaccess und deeplinks

Verfasst: 23.09.2008, 10:42
von Bjoern
Hallo liebe Leute, ich habe bereits einmal woanders diesen thread erstellt und wurde hierher verwiesen.
Ich kopiere mal das wichtigste an Zitaten hier herein, da ich scheinbar schlecht klarmachen kann, was ich brauche ;)
Verstehe ich dich richtig:

Du willst drei Seiten seite1.html, seite2.html und seite3.html unter drei verschiedenen URLs verfügbar machen. Bei diesen ist der Pfad identisch, nur der Hostname unterscheidet sich:
www.example.com/seite.html seite1.html
www.example.net/seite.html seite2.html
www.example.org/seite.html seite3.html
Meine .htaccess sieht momentan so aus:
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*)$ https://www.domain/$1 [L,R=301]
RewriteRule ^Produkt$ /index.php?id=22&L=1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www.domain.de$
RewriteRule ^Produkt$ /index.php?id=22&L=0 [L,R=301]

RewriteCond %{HTTP_HOST} ^domain.tv$
RewriteRule ^(.*)$ https://www.domain.tv/$1 [L,R=301]
RewriteRule ^Produkt$ www.domain.tv/index.php?id=44 [L,R=301]
Man landet jetzt bei jedem deeplink unter www.domain.com|.de|.tv/index.php?id=22&L=1 statt wie oben vorgegeben auf
www.domain.com/produkt -> www.domain.com/index.php?id=22&L=1
www.domain.de/produkt -> www.domain.de/index.php?id=22&L=0
www.domain.de/produkt -> www.domain.tv/index.php?id=44

Vielen Dank im Voraus für eure Ideen und Tipps, denn ich finde viele erklärende Beiträge zur .htacces aber nichts über die Verwendung bei mehreren domains und einem deeplink für verschiedene urls.

Verfasst:
von

Re: .htaccess und deeplinks

Verfasst: 23.09.2008, 12:35
von Mork vom Ork
Bjoern hat geschrieben:RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*)$ https://www.domain/$1 [L,R=301]
RewriteRule ^Produkt$ /index.php?id=22&L=1 [L,R=301]
[…]
Man landet jetzt bei jedem deeplink unter www.domain.com|.de|.tv/index.php?id=22&L=1 statt wie oben vorgegeben auf
www.domain.com/produkt -> www.domain.com/index.php?id=22&L=1
www.domain.de/produkt -> www.domain.de/index.php?id=22&L=0
www.domain.de/produkt -> www.domain.tv/index.php?id=44
Was du vor hast, ist mir nicht ganz klar, aber sei's drum, das Problem scheint mir folgendes zu sein:

Du hast in der Anleitung zu RewriteCond übersehen, dass ein Block RewriteCond-Zeilen immer nur für die direkt darauf folgende, einzelne RewriteRule-Zeile gilt. Beispiel:

RewriteCond A
RewriteRule B

RewriteRule C

Die RewriteCond-Zeile A gilt hier nur für die RewriteRule-Zeile B. Mit der RewriteRule-Zeile C hat sie nichts mehr zu tun, hierfür müsste eine weitere RewriteCond-Zeile eingefügt werden:

RewriteCond A
RewriteRule B

RewriteCond A
RewriteRule C

Verfasst: 23.09.2008, 14:30
von Bjoern
Hallo,

damit beziehst du dich jetzt doch nur auf die ersten 3 Zeilen, sehe ich das richtig?
Aber das funktioniert wunderbar, ich kann auch ohne weiteres mehrere RewriteRules anfügen und erhalte eine Vielzahl von Deeplinks mit nur einer RewriteCondition.
Das Problem ist, dass ich gerne diese 3 deplinks anlegen würde und jeder deeplink auf eine andere seite führen soll, obwohl das wort hinter der url immer das gleiche sein soll!

Verfasst:
von

Verfasst: 23.09.2008, 17:15
von Mork vom Ork
Bjoern hat geschrieben:damit beziehst du dich jetzt doch nur auf die ersten 3 Zeilen, sehe ich das richtig?
Nein, auf das Ganze.
Das Problem ist, dass ich gerne diese 3 deplinks anlegen würde und jeder deeplink auf eine andere seite führen soll, obwohl das wort hinter der url immer das gleiche sein soll!
Eben. Das kann nicht funktionieren, solange du nicht vor jeder der drei „RewriteRule ^Produkt$ …“-Zeilen die gewünschte Domain per RewriteCond abfragst. Momentan passiert das nur beim zweiten Eintrag, dem für die de-Domain. Bei den beiden anderen hast du zwar auch eine entsprechende RewriteCond-Zeile, aber die funktioniert, wie ich deutlich machen wollte, nur für die direkt darauf folgende RewriteRule-Zeile. Vielleicht wird's so deutlicher, was da wie zusammengehört:

RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]

RewriteRule ^Produkt$ /index.php?id=22&L=1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www.domain.de$
RewriteRule ^Produkt$ /index.php?id=22&L=0 [L,R=301]


RewriteCond %{HTTP_HOST} ^domain.tv$
RewriteRule ^(.*)$ https://www.domain.tv/$1 [L,R=301]

RewriteRule ^Produkt$ www.domain.tv/index.php?id=44 [L,R=301]

Vor der rosa und der schwarzen Zeile fehlen RewriteCond-Zeilen, da die jeweils davor liegenden braunen bzw. grünen keine Wirkung mehr haben und pauschal für alles gelten, was vorbeikommt. So müsste es funktionieren:

RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^Produkt$ /index.php?id=22&L=1 [L,R=301]


RewriteCond %{HTTP_HOST} ^www.domain.de$
RewriteRule ^Produkt$ /index.php?id=22&L=0 [L,R=301]


RewriteCond %{HTTP_HOST} ^domain.tv$
RewriteRule ^(.*)$ https://www.domain.tv/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^domain.tv$
RewriteRule ^Produkt$ www.domain.tv/index.php?id=44 [L,R=301]

Verfasst: 09.10.2008, 09:06
von Bjoern
Hi, sry erstmal war im urlaub.
Es geht so leider nicht, dadurch wird der deeplink funktionsunfähig.
Danach erreiche ich keine Seite mehr per deeplink.

So wie ich es bisher habe, kann ich unter der .com Addresse mehrere deeplinks mit nur einer rewritecond erreichen.

Verfasst: 19.10.2008, 12:58
von smsaffaere
Ich gehöre auch zu denen, die das mit den Deeplinks nicht hinbekommen. Bin aber auch absoluter Anfänger und teste noch alles mögliche. Könnte jemand eine Anleitung zum Einbau von Deeplinks schreiben und das hier verlinken?!