registrieren registriertes Mitglied


Anzeige

Anzeige

Frage zur 301/302 per htaccess

Stell hier Deine Frage zu: HTML, CSS, PHP, MySQL, htaccess, robots.txt, Javascript usw
Dynamix
PostRank 1
PostRank 1
Beiträge: 26
Registriert: 28.03.2011, 16:18

Beitrag Dynamix » 29.12.2012, 17:30 Frage zur 301/302 per htaccess

bbnetch hat geschrieben:also so wie du das jetzt schreibst, sind es ja 3 versch. domains.
also brauchst du nicht eine htaccess, sondern fuer jede domain eine.
...
irgendwie wird man aus deiner erklaerung nicht schlau, du musst halt fuer jede einzelne domain eine andere htacess erstellen, und kannst nicht die selbe fuer alle 3 domains benutzen.
du bringst hier bischen viel durcheinander....

Also im Moment löse ich das so:

Code: Alles auswählen

RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain1\.de
RewriteRule ^$ http://www.hauptdomain1.de [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain2\.de
RewriteRule ^$ http://www.hauptdomain2.de [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain3\.de
RewriteRule ^$ http://www.hauptdomain3.de [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain4\.de
RewriteRule ^$ http://www.hauptdomain3.de [R=301,L]
Wie gesagt, das klappt auch! Mit der kleinen Ausnahme, daß alles was nach dem Toplevel kommt immer mit durchgeschleift wird. Das würde ich gerne bei der Hauptdomain "abschneiden", aber eben VOR der Weiterleitung, damit ich keine .htaccess auf dem Zielserver anpassen muss.

Für jede WeiterleitungsDomain eine eigene .htaccess geht in diesem Falle nicht, da sich alle das Selbe Verzeichnis teilen müssen.

Melegrian hat geschrieben:Nee, geht meiner augenblicklichen Meinung nach nicht oder zumindest nicht so einfach. Woher sollte denn der Server zum Beispiel wissen, dass er "www.domain2.de" zu "www.hauptdomain2.de" und nicht zu "www.hauptdomain1.de" oder "www.hauptdomain3.de" weiterleiten soll?

Es müssten meiner Meinung nach 3 Weiterleitungen zu 3 Ziel-Domains eingerichtet werden mit unterschiedlichen Bedingungen, somit 6 Regeln, zwei für jede Domain, in etwa so für eine Domain:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} !^/(.+)/$
RewriteCond %{HTTP_HOST} ^www\.domain1\.de$ [NC]
RewriteRule ^(.*)$ http://www.hauptdomain1.de/$1 [L,R=301]

RewriteCond %{REQUEST_URI} ^/(.+)/$
RewriteCond %{HTTP_HOST} ^www\.domain1\.de$ [NC]
RewriteRule ^(.+)/(.*)$ http://www.hauptdomain1.de/$2 [L,R=301]
Und das Ganze dann mal 3 für 3 Domains.
Das habe ich eben getestet und hat das Selbe Resultat wie meine Version: es leitet korrekt weiter aber alles was nach dem Toplevel kommt als z.B. /test/xyz.html kommt beim Ziel mit an.

Anzeige von:

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

Jetzt anfragen: 0511 / 300325-0.


Dynamix
PostRank 1
PostRank 1
Beiträge: 26
Registriert: 28.03.2011, 16:18

Beitrag Dynamix » 29.12.2012, 17:38 Frage zur 301/302 per htaccess

Melegrian hat geschrieben:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} !^/(.+)/$
RewriteCond %{HTTP_HOST} ^www\.domain1\.de$ [NC]
RewriteRule ^(.*)$ http://www.hauptdomain1.de/$1 [L,R=301]

RewriteCond %{REQUEST_URI} ^/(.+)/$
RewriteCond %{HTTP_HOST} ^www\.domain1\.de$ [NC]
RewriteRule ^(.+)/(.*)$ http://www.hauptdomain1.de/$2 [L,R=301]
Und das Ganze dann mal 3 für 3 Domains.
Ich glaube dies ist doch die Lösung die am dichtesten ran kommt.
Wenn ich nämlich dort das $1 bzw $2 hinter der Domain weg lasse klappt es fast:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} !^/(.+)/$
RewriteCond %{HTTP_HOST} ^www\.domain1\.de$ [NC]
RewriteRule ^(.*)$ http://www.hauptdomain1.de [L,R=301]

RewriteCond %{REQUEST_URI} ^/(.+)/$
RewriteCond %{HTTP_HOST} ^www\.domain1\.de$ [NC]
RewriteRule ^(.+)/(.*)$ http://www.hauptdomain1.de [L,R=301]

"fast" deshalb, weil nun alles abgeschnitten wird, mit Ausnahme von Variablen.
Also ein https://www.weiterleitungsdomain.de/?a=1 wird dann zu https://www.hauptdomain.de/?a=1

Wenn man also noch den Rest abschneiden könnte, dann hätten wir es. ;-)

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

Beitrag Melegrian » 29.12.2012, 18:34 Frage zur 301/302 per htaccess

Ich ging davon aus, dass nur die Verzeichnisse nicht mit übernommen werden sollten, jedoch die Seiten schon. Wenn nichts übernommen werden soll, dann wird es wieder einfacher.

So sollte es gut sein:

Code: Alles auswählen

RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain1\.de
RewriteRule .* http://www.hauptdomain1.de/? [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain2\.de
RewriteRule .* http://www.hauptdomain2.de/? [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain3\.de
RewriteRule .* http://www.hauptdomain3.de/? [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain4\.de
RewriteRule .* http://www.hauptdomain3.de/? [R=301,L]
So sieht es besser aus:

Code: Alles auswählen

RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain1\.de
RewriteRule ^(.*)$ http://www.hauptdomain1.de/? [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain2\.de
RewriteRule ^(.*)$ http://www.hauptdomain2.de/? [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain3\.de
RewriteRule ^(.*)$ http://www.hauptdomain3.de/? [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?weiterleitungsdomain4\.de
RewriteRule ^(.*)$ http://www.hauptdomain3.de/? [R=301,L]

Dynamix
PostRank 1
PostRank 1
Beiträge: 26
Registriert: 28.03.2011, 16:18

Beitrag Dynamix » 29.12.2012, 19:59 Frage zur 301/302 per htaccess

Sorry, die beiden gehen leider nicht. Verzeichnisnamen werden hier wieder mitgeschleift. Variablen ebenso...
Die Vorher waren dichter dran. ;-)

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

Beitrag Melegrian » 29.12.2012, 20:59 Frage zur 301/302 per htaccess

Dynamix hat geschrieben:Verzeichnisnamen werden hier wieder mitgeschleift. Variablen ebenso...
Glaube ich nicht und verstehe ich nicht. Habe einen kleinen Test gemacht und Verzeichnis, Seite und QueryString wird abgehängt bei den beiden

"https://localhost/shop/demo.php?software=1"
"https://localhost/test/shop/demo.php?literatur=4"

und beide werden sauber und ohne Anhang auf

"https://www.example.localhost/"

weitergeleitet mit:

Code: Alles auswählen

RewriteCond %{HTTP_HOST} ^(www\.)?localhost$ [NC]
RewriteRule ^(.*)$ http://www.example.localhost/? [L,R=301]
Dann hast Du vorher den Cache nicht gelöscht oder wie auch immer.

Benutzeravatar
bbnetch
PostRank 8
PostRank 8
Beiträge: 869
Registriert: 02.06.2005, 18:24
Wohnort: Philippinen
Kontaktdaten:

Beitrag bbnetch » 29.12.2012, 21:08 Frage zur 301/302 per htaccess

Dynamix hat geschrieben: Für jede WeiterleitungsDomain eine eigene .htaccess geht in diesem Falle nicht, da sich alle das Selbe Verzeichnis teilen müssen.
mann.... ihr murkselt aber auch komische sachen !?
Geld verdienen im Schlaf und so ...Webmasterforum

Suche Linktausch Thema: Reisen, Philippinen, Ferienwohnung/Apartment, Tauchen, Urlaub etz. PN bitte!
.

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

Beitrag Melegrian » 29.12.2012, 21:46 Frage zur 301/302 per htaccess

Na ja, in der ersten Zeit habe ich auch ab und an zwischen zwei Tests den Cache nicht gelöscht und mich dann gewundert, dass Weiterleitungen nicht wie erwartet funktionierten.

Allgemein, ein geklammerte Ausdruck wie (.*) speichert den gefundenen Wert in $ und da es der erste geklammerte Ausdruck ist, muss der mit $1 übernommen werden. Der gefundene Wert besteht in diesem Fall aus dem Pfad und wenn der nicht mit $1 durchgereicht wird, dann sollte der da auch nicht auftauchen. Falls doch, so läuft etwas falsch. Ein Fragezeichen hinter /? verhindert, dass der QueryString übernommen wird.

Wie bereits geschrieben, bei mir funktionierten die Weiterleitungen bei den Tests ohne problemlos.
Scripts und Plugins für Cookie-Hinweise

Dynamix
PostRank 1
PostRank 1
Beiträge: 26
Registriert: 28.03.2011, 16:18

Beitrag Dynamix » 30.12.2012, 15:53 Frage zur 301/302 per htaccess

Jo, das war´s!
Die letzte Antwort funktionierte dann bei mir auch. Der Unterschied war das der Abschnitt /?

Somit sieht die Lösung final nun so aus:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} !^/(.+)/$ 
RewriteCond %{HTTP_HOST} ^www\.weiterleitungsdomain1\.de$ [NC] 
RewriteRule ^(.*)$ http://www.hauptdomain1.de/? [L,R=301] 

RewriteCond %{REQUEST_URI} !^/(.+)/$ 
RewriteCond %{HTTP_HOST} ^www\.weiterleitungsdomain2\.de$ [NC] 
RewriteRule ^(.*)$ http://www.hauptdomain2.de/? [L,R=301] 
Danke für die Hilfestellung! ;-)

Frage noch: muss man

Code: Alles auswählen

RewriteCond %{REQUEST_URI} !^/(.+)/$ 
jedes Mal davor setzen, oder reicht es einmal ganz am Anfang?


Und noch eine Frage, welche eigentlich ein anderes Thema darstellt, mich aber bei einer der Hauptdomains betrifft und wo ich nicht weiß, ob man das überhaupt per .htaccess lösen könnte, aber da man ja mit der Datei scheinbar recht komplexe Aufgaben weiter leiten kann, scheint es mir ja nicht unmöglich...
Und zwar handelt es sich dabei um einen kleinen Online Shop. Der arbeitet mit hierarchisch angeordneten URLs.
In der Art wie:
www.shop.de/hauptkategorie1/unterkatate ... dukt1.html
www.shop.de/hauptkategorie1/unterkatate ... dukt2.html
www.shop.de/hauptkategorie1/unterkatate ... dukt1.html
www.shop.de/hauptkategorie1/unterkatate ... dukt2.html
www.shop.de/hauptkategorie1/unterkatate ... dukt3.html
www.shop.de/hauptkategorie2/unterkatate ... dukt1.html
usw.

Wenn nun ein Produkt endgültig aus ist, wird es derzeit aus dem Shop entfernt und es entsteht ein 404.
Könnte man nun ein Fallback machen, in der Art wie, wenn
www.shop.de/hauptkategorie1/unterkatate ... dukt1.html ist aus und somit wird auf www.shop.de/hauptkategorie1/unterkatategorie1/ weiter geleitet.
existiert nun dieser Pfad auch nicht, wird auf www.shop.de/hauptkategorie1/ weiter geleitet. Ist der auch nicht mehr vorhanden auf www.shop.de
Die Kategorien bzw. "Fallbacks" könnten durchaus hardcoded angegeben werden, denn sie ändern sich nicht so oft, wie die Produkte.
Lassen sich derart komplexe Aufgaben per .htaccess lösen?

Benutzeravatar
bbnetch
PostRank 8
PostRank 8
Beiträge: 869
Registriert: 02.06.2005, 18:24
Wohnort: Philippinen
Kontaktdaten:

Beitrag bbnetch » 30.12.2012, 16:29 Frage zur 301/302 per htaccess

per htaccess eher nicht, aber du koenntest jeweils in jeden ordner ne eigene 404 seite reinmachen, und in diese jeweils eine weiterleitung auf die hauptkategorie einbauen.
Geld verdienen im Schlaf und so ...Webmasterforum

Suche Linktausch Thema: Reisen, Philippinen, Ferienwohnung/Apartment, Tauchen, Urlaub etz. PN bitte!
.

Dynamix
PostRank 1
PostRank 1
Beiträge: 26
Registriert: 28.03.2011, 16:18

Beitrag Dynamix » 30.12.2012, 16:52 Frage zur 301/302 per htaccess

Diese werden aber vom Shop (XTCommerce) generiert und sind in dem Sinne ja nicht existent...

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

Beitrag Melegrian » 30.12.2012, 17:47 Frage zur 301/302 per htaccess

Dynamix hat geschrieben:Frage noch: muss man

Code: Alles auswählen

RewriteCond %{REQUEST_URI} !^/(.+)/$ 
jedes Mal davor setzen, oder reicht es einmal ganz am Anfang?
Das sollte nun eigentlich völlig über sein, war ja nur gedacht um URLs mit und ohne Verzeichnis im Pfad zu unterscheiden.

Bei der anderen Geschichte kenne ich auch nur Lösungen über 404 Fehlerseiten mit Weiterleitungen.

Benutzeravatar
bbnetch
PostRank 8
PostRank 8
Beiträge: 869
Registriert: 02.06.2005, 18:24
Wohnort: Philippinen
Kontaktdaten:

Beitrag bbnetch » 30.12.2012, 18:44 Frage zur 301/302 per htaccess

dann uesstest das whrscheinlich ueber eine php funktion abafngen.

oder eben die generierte fehlerseite aendern, also halt so, das anstelle der fehlerseite einfach der ordner kommt.

so in etwa ../ gehe auf den naechsten ordner.

waere schonwas moeglich, aber das geht halt dann ins php rein, nicht auf den server selbst.
Geld verdienen im Schlaf und so ...Webmasterforum

Suche Linktausch Thema: Reisen, Philippinen, Ferienwohnung/Apartment, Tauchen, Urlaub etz. PN bitte!
.

Dynamix
PostRank 1
PostRank 1
Beiträge: 26
Registriert: 28.03.2011, 16:18

Beitrag Dynamix » 30.12.2012, 19:57 Frage zur 301/302 per htaccess

So, alles umgesetzt und klappt.
Bezgl. der Verzeichnisweiterleitung; ja, über die Lösung an der Stelle wo die 404-Seite von XTCommerce erzeugt wird an zu setzen, habe ich auch schon nachgedacht. Das wird es dann wohl werden, denke ich...

Also an dieser Stelle noch mal ein herzlichen Dank an Euch, wegen dem Support! ;-)

Wünsche Euch einen guten Rutsch & erfolgreiches 2013. ;-)
VG

Benutzeravatar
bbnetch
PostRank 8
PostRank 8
Beiträge: 869
Registriert: 02.06.2005, 18:24
Wohnort: Philippinen
Kontaktdaten:

Beitrag bbnetch » 30.12.2012, 21:34 Frage zur 301/302 per htaccess

sorry fuer die tipfehler, meine finger sind zu gross fuer die labtop tastatur, und der verschuettete kaffe auf selbigem traegt den rest dazu bei :)
Geld verdienen im Schlaf und so ...Webmasterforum

Suche Linktausch Thema: Reisen, Philippinen, Ferienwohnung/Apartment, Tauchen, Urlaub etz. PN bitte!
.

Dynamix
PostRank 1
PostRank 1
Beiträge: 26
Registriert: 28.03.2011, 16:18

Beitrag Dynamix » 15.06.2014, 01:31 Frage zur 301/302 per htaccess

Hmm, es ist seltsam, aber nach Monaten wollte ich mal wieder eine weitere Domain eintragen und beim testen stellte ich dann fest daß es nicht (mehr) geht.
Es war damals aber mal gründlich getestet, wie man ja oben im Beitrag sehen konnte.
Die Weiterleitung von Seiten mit www. klappt, ohne www. landet man auf einer weissen Seite und die URL ändert sich nicht weiter.

So sehen derzeit die Einträge aus:

Code: Alles auswählen

RewriteCond %{HTTP_HOST} ^www\.weiterleitungsdomain1\.de$ [NC] 
RewriteRule ^(.*)$ http://www.hauptdomain1.de/? [L,R=301] 

RewriteCond %{HTTP_HOST} ^www\.weiterleitungsdomain2\.de$ [NC] 
RewriteRule ^(.*)$ http://www.hauptdomain2.de/? [L,R=301] 

Irgend eine Idee warum es nicht (mehr) geht?

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag