Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Korrekte Umleitung bei Aufruf ohne www

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
cbatik
PostRank 4
PostRank 4
Beiträge: 111
Registriert: 07.05.2004, 11:03

Beitrag von cbatik » 13.01.2012, 21:28

Hallo!

Ich habe folgende Anforderung, für 3 Domains im gleichen Shop:

- beim Aufruf von domain.de/unterseite.html (also ohne www) soll auf www.domain.de/unterseite.html (also mit www) umgeleitet werden
- beim Aufruf von domain.at/unterseite.html (also ohne www) soll auf www.domain.at/unterseite.html (also mit www) umgeleitet werden
- beim Aufruf von domain.ch/unterseite.html (also ohne www) soll auf www.domain.ch/unterseite.html (also mit www) umgeleitet werden

Sprich: Es soll immer auf die jeweilige Domain umgeleitet werden, wenn der Aufruf ohne www erfolgt. Ich verwendene dazu folgenden Code:

Code: Alles auswählen

RewriteCond %{HTTP_HOST} !^www\.domain\.(at|de|ch)$ [NC]
RewriteRule ^(.*)$ http://www.domain.at/$1 [R]
Es funktioniert alles soweit, außer das immer auf auf die .at-Domain umgeleitet wird, sobald eine Unterseite einer anderen Domain ohne www aufgerufen wird. Mir ist auch klar, dass die zweite Zeile meines Codes der Grund des Fehlers ist (steht ja www.domain.at dort), nur wie kann ich eben in dieser Zeile einen dynamischen Wert verwenden (statt fix .at zu schreiben)? Oder wie könnte ich es sonst noch lösen?

Alternativ hätte ich auch noch folgendes probiert, da funktioniert dann aber beim Aufruf von domain.de und domain.ch gar nichts mehr (geht nur noch domain.at):

Code: Alles auswählen

RewriteCond %{HTTP_HOST} !^www\.domain\.at$ [NC]
RewriteRule ^(.*)$ http://www.domain.at/$1 [R]

RewriteCond %{HTTP_HOST} !^www\.domain\.de$ [NC]
RewriteRule ^(.*)$ http://www.domain.de/$1 [R]

RewriteCond %{HTTP_HOST} !^www\.domain\.ch$ [NC]
RewriteRule ^(.*)$ http://www.domain.ch/$1 [R]

Danke, LG
Christoph

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 13.01.2012, 21:40

Sind außer der www. Subdomain noch andere Subdomains aktiv/serverseitig möglich?

Ansonsten, falls nicht, einfach so lösen:

Code: Alles auswählen

RewriteCond %{HTTP_HOST} ^domain\.at$ [NC]
RewriteRule ^(.*)$ http://www.domain.at/$1 [R=301]

RewriteCond %{HTTP_HOST} ^domain\.de$ [NC]
RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301]

RewriteCond %{HTTP_HOST} ^domain\.ch$ [NC]
RewriteRule ^(.*)$ http://www.domain.ch/$1 [R=301]

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 13.01.2012, 21:42

Bereits mit der ersten Bedingung leitest Du alles außer !^www\.domain\.at$ um und so kann es nichts werden. Also, nur ohne-www.domain.at auf mit-www.domain.at umleiten und nicht alles außer-www.domain.at auf mit-www.domain.at umleiten.
Zuletzt geändert von Melegrian am 13.01.2012, 21:50, insgesamt 1-mal geändert.

cbatik
PostRank 4
PostRank 4
Beiträge: 111
Registriert: 07.05.2004, 11:03

Beitrag von cbatik » 13.01.2012, 21:49

:roll:

Oh Mann ... Hätte ich gleich gefragt, hätte ich mir heute viel Zeit gespart. Das war die Lösung:

Code: Alles auswählen

RewriteCond %{HTTP_HOST} ^domain\.at$ [NC] 
RewriteRule ^(.*)$ http://www.domain.at/$1 [R] 

RewriteCond %{HTTP_HOST} ^domain\.de$ [NC] 
RewriteRule ^(.*)$ http://www.domain.de/$1 [R] 

RewriteCond %{HTTP_HOST} ^domain\.ch$ [NC] 
RewriteRule ^(.*)$ http://www.domain.ch/$1 [R]
Danke Euch!
LG Christoph

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 13.01.2012, 21:56

Nehme [R=301] statt [R], sonst ergibt es einen 302.
Scripts und Plugins für Cookie-Hinweise

cbatik
PostRank 4
PostRank 4
Beiträge: 111
Registriert: 07.05.2004, 11:03

Beitrag von cbatik » 16.01.2012, 16:44

Ich noch einmal: Ich habe jetzt bemerkt, dass meine Suche nicht mehr funktioniert. Es wird jetzt immer immer ein leerer String (egal ob GET oder POST) übermittelt. Wenn ich wieder auf die ursprünglich RewriteRule umstellen, funktioniert alles. Die ursprünglich Variante war folgende:

Code: Alles auswählen

############################################
## rewrite everything else to index.php

#RewriteRule .* index.php [L] 
Dass heisst: Ich muss diese RewriteRule auf alle Anfragen anwenden, außer wenn der Aufruf ohne www erfolgt. Nur wie? Wenn ich die obige Anweisung wieder aktiviere, gehen die Aufrufe ohne www alle auf die Startseite, also auf domain.at/index.php (oder domain.de bzw. domain.ch).

Hab jetzt schon herumprobiert, komme aber nicht so recht weiter.

Danke, LG
Christoph

cbatik
PostRank 4
PostRank 4
Beiträge: 111
Registriert: 07.05.2004, 11:03

Beitrag von cbatik » 16.01.2012, 16:57

Ich denke, ich habe es gerade selbst gelöst:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} /search/.* [NC] 
RewriteRule .* index.php [L] 

cbatik
PostRank 4
PostRank 4
Beiträge: 111
Registriert: 07.05.2004, 11:03

Beitrag von cbatik » 18.01.2012, 12:12

Wie von mir bereits vermutet, betrifft das alle Formulare. Es wird nichts mehr per POST oder GET übertragen? Wie kann ich also einstellen, das für alle POST und GET Requests die Regel "RewriteRule .* index.php [L]" gilt?

Danke, LG
Christoph

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 18.01.2012, 12:26

Verstehe ich nicht ganz, da ja bei

Code: Alles auswählen

<form action="datei.php" method="get">
ersichtlich sein sollte, wohin Du etwas sendest. In der Browserzeile sollte ja bei Verwendung von GET etwas stehen wie:

http:// www. domain.de/datei.php?parameter=abc

Falls nicht, so läuft doch da etwas anderes nicht wie gewünscht.

cbatik
PostRank 4
PostRank 4
Beiträge: 111
Registriert: 07.05.2004, 11:03

Beitrag von cbatik » 18.01.2012, 12:30

Der einzige Unterschied ist bei mir, dass der gesamte Pfad im action-Attribut drinnen steht. Also "https://www.domain.de/customer/login/" (wird so vom System automatisch generiert)

Bei der Suche war ja das gleiche Problem, siehe 1 Post weiter oben. Durch die Umstellung senden also alle Formulare keine Daten mehr mit.

Danke!
LG Christoph

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 18.01.2012, 13:10

Bei den Bedingungen und Regeln erfolgt ja nur eine Weiterleitung, wenn eine der 3 Domains ohne www aufgerufen wird. Erfolgt der Aufruf hingegen mit www, so wird auch nichts um- oder weitergeleitet. Ein Aufruf mit www kann somit eigentlich nach meinem Verständnis keinen Einfluss auf die Formulargeschichte haben.

Und wenn das Formular halt so aussieht

Code: Alles auswählen

<form action=http&#58;//www.domain.de/customer/login/ method="get">
Dann sollte dennoch anschließen in der Browsereingabezeile etwas stehen, wie "https://www.domain.de/customer/login/?parameter=abc"

cbatik
PostRank 4
PostRank 4
Beiträge: 111
Registriert: 07.05.2004, 11:03

Beitrag von cbatik » 18.01.2012, 13:28

Es werden auch ganz normal Parameter mitübergeben, ich verstehe es ja auch nicht. Ich habe nun zusätzlich folgende Bedingung eingeben, damit werden jetzt wieder alle Formulareingaben korrekt übermittelt.

Code: Alles auswählen

RewriteCond %&#123;HTTP_HOST&#125; ^www.domain\.&#40;at|de|ch&#41;$ &#91;NC&#93;
RewriteRule .* index.php &#91;L&#93; 

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 18.01.2012, 13:37

Hast Du da außer der index.php noch eine index.html zu liegen?
Denn die konnte in dem Fall nichts annehmen.
Scripts und Plugins für Cookie-Hinweise

cbatik
PostRank 4
PostRank 4
Beiträge: 111
Registriert: 07.05.2004, 11:03

Beitrag von cbatik » 18.01.2012, 13:41

Nein, nur eine index.php
Gott sei Dank, sonst hätte ich wieder ein Problem mehr ;-)

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag