Beiträge von toscho

    Und wie du vorausgesagt hast, wird dadurch das Leerzeichen in Quelltext entfernt.

    Sehr schön. Gib dem Autor bitte Bescheid.

    Zitat

    habe ich bei der Accesslog einfach die Endung .gz in .txt umgewandelt. Damit kann ich dann die Datei im Editor ansehen.


    Seltsam, da wurde die Datei offenbar nicht verpackt, sondern nur mit einer falschen Endung versehen.

    Zitat

    Nur hilft mir dies nicht viel. Ich sehe nur eine Ansammlung von endlosen Zeilen:

    Das sieht zunächst etwas seltsam aus, ist aber eine sehr nützliche Sammlung von Informationen.
    Das Logformat im Webserver Apache sieht meistens so aus:

    Code
    %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"

    Beispiel
    Die Zeile …

    Code
    mnhm-4d01aed3.pool.mediaways.net
    - - 
    [30/Nov/2009:01:00:57 +0100] 
    "GET /2009/php-magic-quotes-entfernen/ 
    HTTP/1.1" 
    200 
    5160 
    "http://toscho.de/2009/trennung-inhalt-layout/" 
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)"


    … die ich hier mal der Übersicht halber umgebrochen habe, sagt mir:

    Vom Host mnhm-4d01aed3.pool.mediaways.net aus wurde von jemandem, der sich nicht authentifiziert hat (- -) auf meine Seite zugegriffen.
    Datum und Zeit stehen in den eckigen Klammern, die Methode war GET (POST und HEAD sind auch üblich, DELETE, PUT und TRACE eher nicht).

    Dann kommt die angeforderte Ressource. Die sagt dir bei einem Fehler, welche URL da eigentlich kaputt ist. Wenn die am Ende ein [FONT="Courier New"]%20[/FONT] hat, dann hat jemand die falsch interpretierte »Canonical URL« angefordert.
    Oft steckt auch feindlicher Code in der URL.

    Dahinter steht das Protokoll, hier HTTP 1.1. Yahoo beispielsweise kann das immer noch nicht und benutzt 1.0 – Schande!

    Der Statuscode lautete 200 (Gefunden); das ist die häufigste Antwort. 404 hieße: Nicht gefunden, 410: Für immer weg. Die 500er sind Serverfehler. Du findest also alle 404er, wenn du nach [FONT="Courier New"][Leerzeichen]404[Leerzeichen][/FONT] suchst.

    Die nächste Zahl gibt die Menge der übertragenen Bytes an, hier 5160.

    Dann kommt der Referer, die Seite, von der aus der Zugriff erfolgt ist. Sehr wichtig, wenn jemand woanders einen kaputten Link auf deine Seite gesetzt hat: Du kannst ihn dann anschreiben, und ihm genau sagen, wo er den Link reparieren möge. Einige Leute senden den Referer nicht mit, andere packen feindlichen Code hinein … das ist also nicht unbedingt eine vertrauenswürdige Quelle.

    Zum Schluß noch der User-Agent (UA), ein Browser oder Crawler. Auch gerne gefälscht, vergiftet oder unterdrückt.

    Spannende und wichtige Informationen also. Ab und zu solltest du einen Blick hinein werfen, denn nur so siehst du beispielsweise, ob ein durchgeknallter Crawler deine Ressourcen vergeudet.

    So hatte ich oft einen UA mit der Kennung Java/1.6.0_04 im Logfile, der viermal pro Stunde sämtliche Feeds (auch die der einzelnen Artikel) abgeholt hat. Alles legale Zugriffe, die in keinem Fehlerbericht auftauchen, aber in der Masse eine ziemliche Zumutung.

    Durch die regelmäßige Logfile-Analyse ist der mir immer wieder aufgefallen, und irgendwann habe ich ihn ausgesperrt mit einem Eintrag in der .htaccess:

    Apache Configuration
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !/greedy\.html
    RewriteCond %{HTTP_USER_AGENT} ^Java/1\.\d [NC]
    RewriteRule ^ /greedy.html [L,R=301]

    Die greedy.html hat 145 Bytes und ist eine einfache, statische HTML-Seite. Darin steht, warum ich das mache, und wer sich daran stört, kann ja mit einem richtigen Browser auf meine Seite kommen und mich anschreiben. Hat noch keiner gemacht. :)


    Zitat

    Im Kontrollpanell meines Webhosters habe ich dann unter den Statistiken für den Monat Dezember 2009 unter anderem folgendes gefunden:


    Naja, das ist hübsch bunt und einfach, unterschlägt aber die wichtigen Details.
    Fast 3% 404er finde ich ganz schön viel. Darum solltest du dich kümmern.

    Sehr wohl habe ich aber folgenden ähnlichen Code-Schnipsel im Quelltext meines Wordpress-Plugins All in One SEO Pack gefunden […]

    Aha. Dann schreib mal in die [FONT="Courier New"]functions.php[/FONT] deines Themes diese Zeile:

    PHP
    add_filter('aioseop_canonical_url', 'trim');

    Das sollte das Leerzeichen entfernen. Wenn es so ist, schick dem Plugin-Autor den Link auf diese Diskussion; sicher möchte er das übernehmen.

    Die Datei access-2009120521-2009121921.log.gz kann ich mit 7-Zip leider auch nicht öffnen.


    Was passiert denn, wenn du es versuchst? Ich habe mit diesem Programm selbst schon gearbeitet. Es kann ganz sicher Gzip-Archive öffnen. Die entpackte Datei kannst du mit jedem Texteditor ansehen.

    In Filezilla sieht 775 so aus: http://img.toscho.de/screenshots/so…a-chmod-775.png

    Vielleicht läuft PHP auf deinem Server als anonymer User und braucht 777, oder es kann generell keine Verzeichnisse anlegen. Dann (und auch sonst) wäre es besser, PHP in dieselbe Gruppe zu stecken, in der auch der Webserver läuft. Das hätte den Vorteil, daß du deine Dateien nicht mehr für jedermann als beschreibbar kennzeichnen mußt.
    Diese Einstellung nimmst du entweder im Backend deines Hosters vor, oder du fragst den Support mal freundlich.

    1. Die Adresse im Eingabefeld des Browsers sieht so aus:
    http://meinehomepage.de/?s=test&x=30&y=10

    Die beiden zusätzlichen Koordinaten geben die Position des Mauszeigers beim Absenden mit. Wenn du das Attribut [FONT="Courier New"]name[/FONT] entfernst, verschwinden sie. Bau bitte noch ein Attribut [FONT="Courier New"]alt[/FONT] ein, damit man auch ohne Bilder noch weiß, was das soll. Beispielsweise so:

    HTML
    <input alt="Suchen">


    2. Sobald ich die searchform.php auf meinen Server lade funktionieren die Comments nicht mehr. Ich kann einen Comment schreiben, aber wenn ich ihn abschicken will werde ich immer nur auf die Startseite weitergeleitet...

    Ich kann das Problem auf meinehomepage.de nicht sehen. Gehört diese Domain wirklich dir?

    Meine header.php sieht wie folgt aus (gesamter Code)

    PHP
    <link rel="shortcut icon" href="<?php bloginfo(’url’); ?>/favicon.ico" type="image/x-icon" />

    Steht »url« wirklich in Apostrophen im Quelltext? Aua!
    (Die Forensaftware baut unbremsbar eine Maskierung ein, die ich nicht geschrieben habe … *grrr*)

    Wenn die kanonische Adresse nicht in der [FONT="Courier New"]header.php[/FONT] erzeugt wird und – da du noch WordPress 2.8.4 benutzt – auch nicht von WordPress selbst, wird sie entweder von einem Plugin erzeugt oder durch Code in der [FONT="Courier New"]functions.php[/FONT] deines Themes.
    Sieh mal, ob du da etwas findest.

    WordPress 2.9 erstellt das Element dann selbst und auch ohne Leerzeichen. Spätesten dann solltest du die aktuelle Quelle gefunden haben.

    Der Dateiname lautet
    access-2009120521-2009121921.log.gz
    aber ich dann diese mit WinZip nicht öffnen! Wie komme ich zu den Daten im Accesslog?


    Probier mal 7-Zip, das kann dieses Format öffnen.

    Nebenbei: Es gilt als höflich, auf Crosspostings hinzuweisen. Dann weiß man als Helfender gleich, ob sich die Mühe lohnt, oder ob du die passende Antwort schon bekommen hast. Noch besser kommt es an, wenn du erst das Ende einer Diskussion abwartest und dann woanders Rat suchst. Das ist kein Vorwurf, nur ein Tipp.

    Es liegt einfach in der Natur der Sache, das es manchmal nicht anders geht.

    Ja, mir ist schmerzhaft bewußt, daß »Sachzwänge« manchmal die Vernunft besiegen. In der Ausgangsfrage standen die aber nicht an, und ich wollte darauf hinweisen, daß das Meta-Element nicht das erste Mittel der Wahl sein sollte, sondern allenfalls das letzte.

    Aber auch Du hast einen Haufen DC im Index.

    Es gibt – unvermeidlich – einzelne Zeichenabschnitte (überwiegend Auszüge), die nicht nur auf einer Seite vorkommen. Keiner dieser Abschnitte dominiert aber jemals eine Seite so sehr, daß sie als »doppelter Inhalt« erkannt zu werden droht.

    Zitat

    ich denke dann würden anderen Teile umso besser ranken nach einer Weile.


    Ich bin mit dem Ranking eigentlich zufrieden. Ich habe mal erwogen, die Kategorienübersichten herauszunehmen, aber die bringen recht viele Besucher, also lasse ich das vorerst.

    Wenn Du zitierst, dann bitte richtig! Das letzte Zitat ist nicht von mir!


    Sorry, ist mir beim Zusammenstückeln verrutscht.

    PS: Indiziert ist indiziert. Ob mit Inhalt oder ohne. Wenn ein Link im Index auftaucht der dort nicht hingehört ist er indiziert. Und genau dafür wird der Meta Tag empfohlen, deckt sich also nicht wirklich mit Deinen Aussagen.

    Ich bestreite nicht, daß das Element so funktioniert; ich halte nur den Ansatz, erst dort zu reparieren, für problematisch. Wenn ich eine Seite wirklich nicht gefunden wissen will, dann mache ich sie Suchmaschinen gar nicht erst zugänglich, oder ich veröffentliche sie nicht.

    Zitat von Putzlowitsch

    Doch, gerade hier in einem Forum ist es sehr hilfreich, wenn HTML- und CSS-Text gut lesbar sind.


    Naja, das ja nicht gerade der Normalfall. :)
    Natürlich könnte man das radikaler betreiben und alles entfernen, was nicht zwingend gebraucht wird, aber das ist in WordPress relativ aufwendig umzusetzen: Man muß [FONT="Courier New"]the_content[/FONT] filtern, ohne [FONT="Courier New"]pre[/FONT] oder irgendwelche Shortcodes anzufassen oder die Whitespace-Bugs des IE 6 zu triggern. Ich hatte das eine Weile laufen, aber so richtig sauber wurde das nie, also habe ich es wieder abgeschaltet.

    Dass im Quelltext ein ein Fehler vorliegt, habe ich nicht gewußt. Kannst du mir bitte verraten, wie ich diesen beheben könnte - ich kenne mich da leider zu wenig aus!


    Das ist kein Fehler im Code, sondern in der Interpretation, wenn es denn überhaupt daran liegt.

    In der [FONT="Courier New"]header.php[/FONT] deines Themes steht irgendwo so etwas:

    PHP
    <?php if ( is_singular() ) 
        echo '<link rel="canonical" href="' . get_permalink() . '" /'; 
    ?>

    Zwischen den beiden Anführungszeichen im letzten Abschnitt – [FONT="Courier New"]'" /';[/FONT] – sollte kein Leerzeichen stehen. Wenn der Code bei dir ganz anders aussieht, post ihn hier mal.

    Ich weiß ehrlich nicht, was deine Frage [Loggst du 404er überhaupt aktiv mit?] bedeutet. Und wo muß ich suchen, um solche 404er zu finden!


    Steht eigentlich alles in der verlinkten Seite. Alle Zugriffe auf deine Seite findest du im Accesslog deines Hosters, darin steht auch, mit welchem Code der Server geantwortet hat. Der Code 404 heißt: Nicht gefunden. Darum solltest du dich immer kümmern.
    Im Artikel biete ich ein Script an, das dir in solchen Fällen eine E-Mail mit allen wichtigen Details schickt. Bequemer geht es nicht mehr. :)


    Da wird ja bestätigt, was ich schon schrieb: Nur die URL merkt sich der Bot, nicht den Inhalt. Das ändert auch das Meta-Element nicht.

    noindex, follow ist Dir noch nicht untergekommen? Das gehört eigentlich gerade um DC zu vermeiden


    Ich vermeide DC, indem ich ihn einfach nicht entstehen lasse. Das ist viel wirksamer, und ich erspare mir das Hinterherflicken.
    Alle wichtigen Seiten werden von indexierbaren Seiten aus verlinkt und somit gefunden.

    Zitat von Putzlowitsch

    Hmmm, schlanker Code gut und schön, allerdings wird das dann etwas unübersichtlich und schlechter lesbar, finde ich.


    Kommt auf den Code an. Meine PHP-Skripte kommentiere ich auch ausführlich, und ich formatiere sie sehr streng. Aber der HTML-Code muß auf der Empfängerseite nicht menschenlesbar sein, also vergeude ich dort keine Bytes dafür. Im Templete sieht das sehr viel übersichtlicher aus.
    Wer sich in seinem Code nicht zurechtfindet, weil [FONT="Courier New"]html[/FONT], [FONT="Courier New"]head[/FONT] und [FONT="Courier New"]body[/FONT] nicht ausgeschrieben wurden, der hat ganz andere Probleme, glaube ich. ;)

    Google hält sich eigentlich sehr genau an die robots.txt und merkt sich höchstens die URL, nicht aber den verbotenen Inhalt. Hast du mal ein Gegenbeispiel?

    Die Kombination [FONT="Courier New"]noindex, follow[/FONT] ist per robots.txt natürlich nicht möglich. Allerdings ist mir noch keine Seite untergekommen, auf der Seiten existierten, die nur von nicht zu indexierenden Seiten aus verlinkt wurden. In diesem Fall würde ich mit der Reparatur woanders ansetzen, denke ich. Irgendwelche Meta-Elemente kommen da sicher zu spät.

    Zitat

    Keinerlei head oder body Tags im Quelltext.

    Die Elemente [FONT="Courier New"]html[/FONT], [FONT="Courier New"]head[/FONT], [FONT="Courier New"]body[/FONT] und [FONT="Courier New"]tbody[/FONT] existieren auch ohne explizite Notation. Sie sind also vorhanden und können per CSS auch angesprochen werden, aber sie stehen nicht im Quelltext. Ich mag schlanken Code. :)

    Nein, das heißt nur, daß nicht die Beschreibungen aus dem Linkverzeichnis der Suchmaschine bei der Auflistung von Suchergebnissen benutzt werden sollen.

    Generell solltest du solche Anweisungen in eine robots.txt packen und nicht in den HTML-Code, den jeder Besucher aufgebrummt bekommt. Als Beispiel dafür, wie das aussehen kann, sieh mal in meine robots.txt.

    Du hast bei jedem Artikel ein Feld »Auszug«. Wenn du das befüllst, bleibt der HTML-Code auch erhalten.
    Wenn du das Feld leer läßt, erzeugt WordPress automatisch einen Auszug, der aber kein HTML mehr enthält, weil ungeschlossene Elemente entstehen und die Ausgabe beschädigen könnten.