branchenbaer
Avatar branchenbaer
Themenersteller
Programmierer
Fortgeschrittener (74 Beiträge)

Wie setze ich richtig Weiterleitungen ? (Seite 3)


joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 03.02.2014, 18:49 Uhr schrieb joerg

Hallo Uli

Ich frage mich eher warum du das nicht gleich per PHP löst anstatt die htaccess dafür zu verwenden.

Doppelte / würde ich mit PHP so umleiten.

<?php
if(strpos(\'//\',$_SERVER(\'REQUEST_URI\'))!=== false)
{
header(\'Location:\'.str_replace(\'//\',\'/\',$_SERVER[\'REQUEST_URI\'],true,301);
exit;
}
?>


Ohne Garantie jetzt für htaccess
RewriteRule ^(.*)//(.*)$ /$1/$2 [R=301,L]

Ist aber beides im Grunde nicht unbedingt notwendig da jeder Server von Hause aus solche doppelten / korrigieren müsste.

Und ein bis zwei Stunden sich mal in das Kapitel reguläre Ausdrücke einlesen sollten für den Anfang reichen.

Was deinen ersten Punkt anbetrifft mir ist jetzt echt nicht klar ob am Ende die // stehen sollen oder ob danach noch was kommt.

Allgemein alles auf die Startseite zu hauen was dir nicht gefällt halte ich aus Usuability Sicht nicht für gerade förderlich, wenn auch andere Alternativen existieren.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 03.02.2014, 19:41 Uhr schrieb matthes

Zuerst: branchenbaer, bitte setze die Rewrite-Regeln in irgendwelche Code-Tags, das sonst sehr ist unübersichtlich.

Den Weg über PHP würde ich nicht gehen. Je früher das abgefangen wird, desto weniger belastet es den Server. Und aufgrund dieses Grundsatzes wäre es besser, diese ganzen Konstrukte generell irgendwie loszuwerden.

Wenn es die Seiten nicht gibt und für diese Anfragen keine Antwort existiert, sollte entsprechend 404 oder 401 zurückgegeben werden, anstatt alles umzulenken. Konsequent analysieren, ob es Backlinks sind oder ob sich der Robot nur im GET-Wirrwarr verlaufen hat. Sind es Backlinks, die Verlinkenden mit Bitte um Korrektur anschreiben oder eben 301er verwenden. Sind es keine, ist das auch nicht nötig. Im Gegenteil, jede nicht-existente Seite auf die Startseite umzuleiten, ergibt keinen Sinn.

Ob doppelte Slashes Generatoren von Duplicate Content sind, weiß ich nicht. Prinzipiell kann der Webserver die Anfrage trotzdem verarbeiten, von daher ist es erst einmal kein großes Problem. Woher kommen die doppelten Slash denn? Ist der Fehler behoben?

[html]RewriteRule ^/nc/firmen-von-a-z/suche-nach-orten(\\/\\/) \\
/firmen-von-a-z/suche-nach-orten.html [R=301,L]
RewriteRule ^/nc/firmen-von-a-z/suche-nach-orten(\\/\\/.*) \\
/firmen-von-a-z/suche-nach-orten.html [R=301,L][/html]
Damit du verstehst, was du tust:
Erst einmal bedeutet das Voranstellen eines Backslash, dass das nachfolgende Zeichen escaped wird, d.h. dass ein Zeichen, das sonst als Steuerzeichen dient, als normales Zeichen verwendet wird. Beim Slash ist das total unnötig, denn der Slash ist kein Steuerzeichen. Das bräuchtest du z.B. beim Fragezeichen, beim Punkt, usw.
Dann verwendest du wieder Klammern. Das ist unnötig, denn Klammern speichern den gefundenen Ausdruck in einer Variablen, die man später wieder verwenden könnte. Tut man das nicht, kann man das lassen.
Theoretisch war deine RewriteRule richtig, trotz der oben genannten Punkte. Wenn das Tool kein Ergebnis ausgespuckt hat, hast du wahrscheinlich die URL falsch kopiert, z.B. könnte ich mir vorstellen, dass du den Zirkumflex auch bei der zu prüfenden URL verwendet hast - und das wäre ein Fehler.
So funktioniert es:
[html]RewriteRule ^/nc/firmen-von-a-z/suche-nach-orten// \\
/firmen-von-a-z/suche-nach-orten.html [R=301,L][/html]

PS: Verdammte Drecksformatierungen. Das müsste mal dringend behoben werden, immer manuell Zeilenumbrüche einzufügen, stört wirklich.


Make Seitenreport great again!

branchenbaer
Avatar branchenbaer
Programmierer
Fortgeschrittener (74 Beiträge)
am 03.02.2014, 22:53 Uhr schrieb branchenbaer

Vielen herzlichen Dank für Eure tolle Hilfe und Eure Geduld mit mir.

Die doppelten // kommen daher, dass die urls innerhalb weniger Tage nicht korrekt zusammengesetzt wurden, d.h. ein Teil der url wurde mit einem Leerstring weitergegeben und daher dann die //.
Der Fehler ist längst behoben nur bei google kommt/kam das nicht an.

Gruß, Uli.


Einfach BÄRig Bescheid wissen auf http://www.branchen-baer.de

Social Media-Branchenbuch für Deutschland

branchenbaer
Avatar branchenbaer
Programmierer
Fortgeschrittener (74 Beiträge)
am 05.02.2014, 00:22 Uhr schrieb branchenbaer

Hallo Matthes,

bin leider erst jetzt in ausreichender Form dazu gekommen, das zu testen.
Leider geht Dein Vorschlag nicht bei

www.branchen-baer.de/nc/firmen-von-a-z/suche-nach-orten//gersheim.html.



Ich schätze mal, weil nach dem // noch etwas kommt, oder ?

Gruß, Uli.


Einfach BÄRig Bescheid wissen auf http://www.branchen-baer.de

Social Media-Branchenbuch für Deutschland

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 05.02.2014, 11:43 Uhr schrieb matthes

Hi,

ergänze am Ende noch ein .*

[html]RewriteRule ^/nc/firmen-von-a-z/suche-nach-orten//.* \\
/firmen-von-a-z/suche-nach-orten.html [R=301,L][/html]


Make Seitenreport great again!

branchenbaer
Avatar branchenbaer
Programmierer
Fortgeschrittener (74 Beiträge)
am 05.02.2014, 18:50 Uhr schrieb branchenbaer

Hi,

erstmal wieder vielen Dank.

Ich habe das ganze getestet unter htaccess.madewithlove.be:



1. Feld

www.branchen-baer.de/nc/firmen-von-a-z/suche-nach-orten//blieskastel.html


2. Feld
RewriteRule ^nc/firmen-von-a-z/suche-nach-orten//.* /firmen-von-a-z.html [R=301,L]
3. Feld

www.branchen-baer.de



Als output url kommt richtig

www.branchen-baer.de/firmen-von-a-z.html !



So weit so gut.

Das interessiert aber den Browser (Chrome+Firefox) nicht !
Wenn ich nach dem speichern der .htaccess die obige lange url aufrufe bleibt diese einfach stehen anstatt auf die neue url weiter zu leiten ????

Hast Du ne Idee, warum das trotzdem nicht klappt ?

Liegt das am Fragezeichen in der url ?

Gruß Uli.


Einfach BÄRig Bescheid wissen auf http://www.branchen-baer.de

Social Media-Branchenbuch für Deutschland

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 05.02.2014, 19:46 Uhr schrieb matthes

Solange du keine Code-Hervorhebung benutzt, weigere ich mich, zu helfen. Das ist mir einfach zu unübersichtlich.
Platziere Code bitte wie folgt, dann kann man ihn lesen:
[html][html]Code[/html][/html]

Oder, wenn es sich um PHP handelt, mit php statt html.


Make Seitenreport great again!

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 05.02.2014, 19:49 Uhr schrieb matthes

*seufz* Okay, einmal noch... Aber nutze die Hervorhebung zukünftig!
Ich bin mir fast sicher, dass es am Zirkumflex (das da: ^) liegt.
Der bedeutet, dass der zu prüfende Text auf diese Weise beginnt.
Du schreibst
^nc/...
Beim Apache wird der an mod_rewrite übergebene String aber mit Sicherheit mit einem Slash beginnen, also
^/nc/...
Deine Regel wird also, völlig korrekt, nicht angewendet.
Lass den Zirkumflex weg oder ergänze den führenden Slash.


Make Seitenreport great again!

branchenbaer
Avatar branchenbaer
Programmierer
Fortgeschrittener (74 Beiträge)
am 05.02.2014, 22:06 Uhr schrieb branchenbaer

Hallo Matthes,

keine der Varianten hilft hier weiter.
Lass gut sein, dann geht es halt nicht.

Vielen Dank trotzdem !

Gruß, Uli.


Einfach BÄRig Bescheid wissen auf http://www.branchen-baer.de

Social Media-Branchenbuch für Deutschland

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 05.02.2014, 22:33 Uhr schrieb matthes

Wie sieht es ganz ohne Zirkumflex und führenden Slash aus?
Und warum leitest du es überhaupt so um? Soweit ich das sehe, ist die URL mit dem doppelten Slash eine Liste der Suchergebnisse zu einem Ort. Du leitest aber auf eine allgemeine Seite um. Wäre es nicht besser, zur korrekten Liste zu diesem Ort umzuleiten?


Make Seitenreport great again!



« zurück zu: .htaccess

Das Seitenreport Forum hat aktuell 5275 Themen und 36110 Beiträge.
Insgesamt sind 48360 Mitglieder registriert.