winelady
Themenersteller
Kauffrau
Content Halbgott (862 Beiträge)

Verstümmelte und falsche Links weiterleiten

am 10.05.2013, 09:44 Uhr eröffnete winelady folgenden Thread
.htaccess    4782 mal gelesen    14 Antwort(en).

Hallo zusammen,

die GWT melden mir unter Crawlingfehler etliche "Seiten nicht gefunden". Dabei handelt es um eingehende Links, die entweder nur aus Bruchstücken bestehen, oder bei denen der Unterstrich – aus welchen Gründen auch immer – als Leerzeichen erkannt wird.

Beispiele:
../wiss
../wissen/spargel%20und%20wein.php (so die Anzeige in GWT). Klickt man auf diesen Link, erscheint statt %20 ein Leerzeichen in der URL.

Ich habe versucht, die Leerzeichenlinks in der .htaccess weiterzuleiten:

Redirect permanent /wissen/spargel%20und%20wein.php www.weingut-fuchs.de/wissen/spargel_und_wein.php

Leider funktioniert das nicht. Hat jemand eine Idee, ob die Leerzeichen eine Sonderbehandlung brauchen?
Eingabe mit echten Leerzeichen statt %20 in der .htacces führt übrigens zu Serverfehler 500.

Zu den abgehackten Links, wovon etliche in der Fehlerliste stehen, fällt mir leider gar nichts ein…

Danke für Eure Ideen,
Gruß
winelady


Weinvielfalt aus dem Weingut Fuchs
Fremdsprachensatz

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

Hallo Hildegard

Reicht dir das als Antwort warum man keine Leerzeichen in der URL schreiben sollte?

de.php.net/manual/de/function.rawurlencode.php

Es gibt aber mittlerweile etliche Browser die Leerzeichen anzeigen in der Url anstatt dem %20

Kontrollieren könnte man das was nun wirklich ankommt mit $_SERVER[\'REQUEST_URI\']

Was die htaccess angeht da sind die flags B und/oder PT hilfreich in so Fällen.

httpd.apache.org/docs/2.2/rewrite/flags.html

Ist aber lange her als ich das letztens gebraucht habe.

Die andere Alternative ist es erstmal die Links von denen das ausgeht zu kontrollieren warum Sie so was machen.

So eine lustige Liste kannst du mir gern per PN schicken.

Eigentlich sollte in den Webmaster Tools die Quelle erkennbar sein.

Ganz ehrlich solche fehlerhafte Links sollten dem Verursacher und nicht dem der sie bekommt angezeigt werden. Was die sich dabei gedacht haben ist mir immer noch ein Rätsel.

Gruß
Jörg


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

winelady
Kauffrau
Content Halbgott (862 Beiträge)
am 11.05.2013, 07:36 Uhr schrieb winelady

Hallo Jörg,

danke für Deine Links; die muß ich mir in Ruhe durchlesen.

Die "am anderen Ende" sitzen z.T. sonstwo im Ausland. Ich kann also entweder hier umleiten oder die Links ins Leere laufen lassen. Teilweise hängt es wohl auch daran, daß Google etwas als Link liest, was eigentlich gar keiner ist.

Gruß
Hildegard


Weinvielfalt aus dem Weingut Fuchs
Fremdsprachensatz

klaus_b
Avatar klaus_b
Er ernährt mich ;-)
Content Meister (328 Beiträge)
am 11.05.2013, 11:00 Uhr schrieb klaus_b

Hallo ihr beiden,

für die Konformität von URLs gibt es eigentlich nur eine Quelle:
Die RFC 3986.
Unter Punkt Punkt 2.3 findet ihr alle nicht reservierten Zeichen die ohne Kodierung verwendet werden dürfen.
Gleich darunter wird sehr schön erklärt wann und wie URLs kodiert werden sollten.
Generell gilt: ein URL der kodiert werden muss, sollte noch einmal überdacht werden. Meist gibt es einen anderen Weg.

Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 11.05.2013, 11:54 Uhr schrieb joerg

Hallo Klaus

Du ich habe schon soviele selbstgebaute Kodierungen in diesen Fällen gesehen, das ich jetzt einfach mal ergänze du meinst als anderen Weg keine selbstgebaute Kodierung.

Und bei sprechenden Urls die aus einer Datenbank kommen wird es echt schwierig einen anderen Weg zu wählen.

Hildegard wieviele Adressen hast du denn überhaupt die mit spargel anfangen?

Wenn die alleine steht wäre sowas noch denkbar obwohl mir ist gerade der Gedanke gekommen es weiter einzugrenzen:

RewriteCond %{REQUEST_URI} !^(wissen/spargel_und_wein.php)$
RewriteRule wissen/spargel(.*und.*wein\\.php) /%1 [R=301,L]

Keine Garantie das der Kode so auf Anhieb funktioniert.
Möglich das da jetzt noch das B Flag gesetzt werden muss.

Ich würde eher dazu neigen es ins Leere laufen zu lassen wenn die Urls so verstümmelt werden. Dann machen die das auch in anderen Fällen und bauen sich ihr eigenes Problem.

Gruß
Jörg


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

hansen
Foren Moderator
Content Gott (1885 Beiträge)
am 11.05.2013, 13:50 Uhr schrieb hansen

Hallo winelady,

winelady schrieb:
die GWT melden mir unter Crawlingfehler etliche "Seiten nicht gefunden". Dabei handelt es um eingehende Links.....


fehlerhafte Links, die ich eventuell produziert habe, werden beseitigt.
Fehlerhafte eingehende kratzen mich ehrlich gesagt überhaupt nicht.
Wenn Du anfängst, die alle mittels .htaccess weiterzuleiten, hast Du bald eine .htaccess-Datei jenseits der 80 Kb.

Gruß
hansen


Nepal Rundreisen

winelady
Kauffrau
Content Halbgott (862 Beiträge)
am 11.05.2013, 17:30 Uhr schrieb winelady

Hallo

@Jörg und @Klaus: nur damit wir uns nicht mißverstehen: von meinen URLs hat keine irgendwelche dämlichen Codes, und warum sie auf anderer Leute Seiten falsch stehen oder von G. falsch gelesen werden, kann ich weder nachvollziehen noch korrigieren.

Mir fiel in den GWT die Liste von Seiten auf, die es gar nicht gibt.

@hansen: tja, auch eine Version, einfach drüberzustehen und die Fehler Fehler sein lassen… fällt mir echt schwer, aber wahrscheinlich die sinnvollste und arbeitssparende Methode. :mrgreen:

Gruß
winelady


Weinvielfalt aus dem Weingut Fuchs
Fremdsprachensatz

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 11.05.2013, 17:58 Uhr schrieb joerg

hansen schrieb:

Wenn Du anfängst, die alle mittels .htaccess weiterzuleiten, hast Du bald eine .htaccess-Datei jenseits der 80 Kb.



Hallo Hannelore

Du das kann man alles einfacher lösen.

Einfach alle nichtexistierenden Seiten nach einer PHP Datei umleiten per htaccess und da kann man dann die Fälle dementsprechend sortieren.

Aber selbst wenn ich so minimalistisch wie möglich denke komme ich für die htaccess Datei nicht unter 1 Kb momentan.

Und im wesentlichen muss diese PHP Datei nicht viel beinhalten.


<?php
if (preg_match(\'#/umleiten#\',$_SERVER[\'REQUEST_URI\'])){
$http = 301;$target = \'/ziel\';}
elseif (preg_match(\'#/nicht_vorhanden#\',$_SERVER[\'REQUEST_URI\']))
$http = 410;
else
$http = 404;

header(\'Status:\'.$http);
if ($http == 301)
header(\'Location:\',true,$http);
else
include($http.\'.php\');
#Statistik
error_log(\'Fehler: \'.serialize($_SERVER)."\\n",3,
\'/serverpfad/fehlerdatei.txt\');
?>


RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /weiche.php [L,QSA]

Verzeichnisse von CMS sollte man ausnehmen in diesem Fall der Shop

Und wenn du gerne auch mal andere HTTP Status Codes dann noch einbauen willst sollte das auch sehr flott gehen.

Und wer sich eine Statistik wünscht speichert das irgendwo noch ab und ab dem Moment hat man an Mehrwert gewonnen. Sollte die eine Zeile mehr an PHP Code bringen. Ist nur etwas unleserlich.

Besser wäre es auf jeden Fall mit de.php.net/manual/de/function.yaml-emit.php anstatt serialize aber dazu muss die Funktion auch vorhanden sein.

Textdatei sollte reichen und da ich den Kode wie man sich mit einem täglichen Cronjob diese Informationen mal eben zuschicken kann eh parat habe.


<?php
error_reporting(E_ALL);
ini_set(\'log_errors\', 1);
date_default_timezone_set(\'UTC\');

$dir = \'/verzeichnisderdateien/\';
ini_set(\'error_log\', $dir.\'error.txt\');

chdir($dir);

function mail_cronjob($file,$content){
if (@mail(\'sample@example.com\', $file, $content,
\'From: sample@example.com\')) {
unlink ($file);}
}

$filelist = glob(\'*.txt\');
if ($filelist){
foreach ($filelist as $file) {
$content = file_get_contents($file);
mail_cronjob($file,$content);
}
}
?>


So das sollte die Menschheit vor 80 Kb grossen htaccess Dateien bewahren.

@Hildegard du ich habe nicht angenommen das du die Quelle selbst bist. Ich kenne genügend solcher Seiten, deren Macher nicht in der Lage sind das Gehirn einzuschalten.

Da gibt es mehrere Konkurrenzseiten zu Seitenreport bei denen sowas zumindest der Fall war. Aktuellen Stand schaue ich mir jetzt nicht an.

Gruß
Jörg


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

hansen
Foren Moderator
Content Gott (1885 Beiträge)
am 11.05.2013, 19:09 Uhr schrieb hansen

Hallo Jörg,

Danke Dir für Deine Mühe und Deine Lösung.
Es kommt immer darauf an, was das für Links sind.
Bei mir sind es derzeit 29, die alle von so mieser Qualität sind - richtig grottenschlecht, dass jegliches investieren in Arbeit absolut sinnlos und überflüssig ist.

Gruß
hansen


Nepal Rundreisen

klaus_b
Avatar klaus_b
Er ernährt mich ;-)
Content Meister (328 Beiträge)
am 12.05.2013, 12:56 Uhr schrieb klaus_b

Hallo Jörg,

joerg schrieb:
<snip>
Und bei sprechenden Urls die aus einer Datenbank kommen wird es echt schwierig einen anderen Weg zu wählen.

Nein, es ist gar nicht schwierig.
Welche Sonderzeichen benötigst du denn in einem URL, die unbedingt enthalten sein müssten? Richtig, kein einziges.
Egal wie "sprechend" deine URLs auch sein mögen, Satzzeichen benötigen sie keine. Lediglich Umlaute sollten durch ihren Vokale ersetzt werden. Ligaturen kann man auch getrost auflösen. So vermeidet man von vorn herein Probleme. Lehrzeichen nicht durch Unterstriche sondern durch Minuszeichen ersetzen. Schon hast du keine Probleme und benötigst auch keine Kodierung.
Aus
Wie soll ich das und daß nur schön lösen.html
wird
wie-soll-ich-das-und-dass-nur-schon-losen.html
Auch wenn keine Umlaute enthalten sind und es für deutschsprachige komisch klingt, für Suchmaschinen macht es kaum einen Unterschied, da der Editierabstand (Levenshtein-Distanz) vernachlässigbar ist.

@winelady
Ich bin voll und ganz auf Hannelores Seite.
Warum sollst du Klimmzüge veranstalten um die Dummheit, oder das Unvermögen, anderer auszubügeln?
Ich hatte auch schon dieses Problem mit unvollständigen oder "anders gearteten" Links. Nach dem sie alle 404 zurückgaben, habe ich in den GWT ein Löschung beantragt. So habe ich diese Links nach und nach aus dem Index entfernt. Das geht nicht von Heute auf Morgen, aber Geduld braucht man im Umgang mit Google eh jede Menge

Servus,
Klaus


klaus_b@.NET über alles was an .NET und C# Spass macht.

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 12.05.2013, 15:13 Uhr schrieb joerg

Hallo Klaus

Wenn du diese Philosophie so anwendest, dann sehe ich da massiven Unterschied zu dem wie ich das umsetzen würde.

Ausserdem ist diese von dir vorgestellte Methode meiner Ansicht nach nur mit Kontrolle der Eingabedaten beziehungsweise dann auch bei der Ausgabe zu realisieren.

Bei meiner Vorgehensweise kann jedes denkbare Unicode Zeichen enthalten sein und damit ist man viel globaler aufgestellt.

Angenommen du solltest eine mit griechischer Schrift versehende Url schaffen dann müsstest du dein Vorgehen massiv anpassen.

Gruß
Jörg


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



« zurück zu: .htaccess

Das Seitenreport Forum hat aktuell 5267 Themen und 36089 Beiträge.
Insgesamt sind 48169 Mitglieder registriert.