<a href=""></a> <a href="-online-14"></a> <a href=""></a> <a href="-mindy"></a> <a…
von:
VPNwelt.com sucht Feedback Wie der Name schon sagt handelt es sich um eine Review Website für…
von: florian.berg.privat
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
Hallo Hildegard
Reicht dir das als Antwort warum man keine Leerzeichen in der URL schreiben sollte?
de.php.net/manual/de/function.rawurlencode.php
httpd.apache.org/docs/2.2/rewrite/flags.html
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
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
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
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
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
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.
<?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);
}
}
?>
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
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
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
Beitrag erstellen
EinloggenKostenlos registrieren