Zudem genügt das Attribut lang vollkommen. xml:lang interpretiert niemand.
Beiträge von toscho
-
-
Nochmal ganz zurück: Du benutzt [FONT="Courier New"]Redirect permanent[/FONT]; das ist eine Direktive aus mod_alias, nicht aus mod_rewrite.
Deshalb steht sie auch alleine; der ganze Krempel drumherum (RewriteBase usw.) hat da nichts zu suchen.Außerdem kannst du sie nur auf einen URL-Pfad anwenden, nicht auf den Query-String. Du brauchst also mod_rewrite.
Das sähe dann (ungetestet!) so aus:Apache ConfigurationRewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} category=1&product_id=1 RewriteRule ^ /shop/blumen/gelbe-sonnenblumen/ [L,R=301]Gruß
ThomasP.S.: Bitte benutze example.com für Beispieldomains, es sei denn, domain.de gehört dir wirklich.
-
Liegt denn im Verzeichnis /shop/blumen/gelbe-sonnenblumen/ eine index.php oder so?
-
Seltsam, die Anführungszeichen sind syntaktisch völlig richtig.
-
Der rote Teil kommt zu spät; der wird nicht mehr abgearbeitet, weil der erste ja schon greift.
Die RewriteBase wird direkt nach »RewriteEngine On« angegeben. Irgendwo am Schluß gammelt sie nur herum. ;) -
-
Die wai-aria-Attribute sind (noch) nicht Teil eines HTML-Standards. Du kannst sie dennoch ohne Probleme benutzen.
Das Attribut cols kannst du im Theme selbst nachtragen, normalerweise in der comments.php.
-
Du brauchst kein zweites Verzeichnis; nur die wp-config.php mußt du anpassen. Wie das geht, habe ich hier beschrieben.
-
also Adresse für Adresse in diese Löschkonsole und Geduld
Das wäre dann der umständliche Weg, wenn man 410 nicht hinbekommt. ;)
Ich rate davon ab. Google hat ein hohes Interesse daran, Adressen, die mit 4xx antworten, aus dem Index zu nehmen. Wenn man das korrekt ausgibt, geht das auch recht schnell, maximal vier Wochen. -
Gehört domain.de wirklich dir? Wenn nicht, benutze example.com für Beispiele; dafür ist es da. ;)
http://www.example.com/11/2009/ bedeutet nach deiner neuen Struktur: Tag 11 im Monat 2009. Da aber kaum ein Jahr so viele Monate hat, findet WordPress nichts.
In anderen Worten: Das Archiv arbeitet nach dem Inhärenzprinzip. Ganz links steht der äußerste Conatiner (Jahr), dann der Monat und dann der Tag. Ich glaube nicht, daß sich das ohne Performanceeinbrüche ändern läßt.Also ist diese Anordnung von außen nach innen nicht irgendeinem Datumsformat geschuldet; die meisten Leser verstehen sie deshalb auf Anhieb. Mit dem angeblich »deutschen« Format flickst du etwas, daß gar nicht kaputt ist, finde ich.
-
Das Umbenennen der index.php war eine enorm schlechte Idee. Man behebt ein Problem doch nicht, indem man wahllos etwas kaputtmacht.
Zum Statusheader.
Jede Ressource, die man per HTTP abruft, besteht aus zwei Teilen: dem Header und dem Body.
Der Header ist gewissermaßen der Umschlag; er geht dem Body (beispielsweise HTML-Code) voraus.Im Header stehen wichtige Metadaten: Zeichenkodierung, Länge des folgenden Bodys, Hinweise zum Caching – und eben auch der Status (oder: Zustand) der Ressource.
Der Status 301 beispielsweise sagt: Die Ressource befindet sich jetzt für immer an einer anderen Adresse. Status 200 heißt: Alles in Ordnung, das ist ein erfolgreicher Aufruf.
Status 400 sagt: Die Ressource habe ich gerade nicht.
Status 410: Diese Ressource ist für immer verschwunden.Diesen Status 410 brauchst du. Denn es genügt nicht, den Artikel einfach in der Datenbank zu löschen – da kann ja niemand außer dir reingucken.
Stelle die single.php und die index.php wieder her.
Setze an den Anfang der header.php folgenden Code:
Suche in der single.php diesen Code:
Hinter der schließenden Klammer »}« dieser Abfrage, sollte sich ein else {} befinden. Wenn nicht, schreib eins hin.Direkt hinter die öffnende Klammer »{« setze diesen Code:
PHP
Alles anzeigenif ( strstr(PHP_SAPI, 'cgi') ) { header($_SERVER['SERVER_PROTOCOL'] . ' 410 Gone'); echo "\r\n\r\n"; } else { if ( version_compare( PHP_VERSION, '4.3.0', '>=' ) ) { header('Gone', TRUE, 410); } else { header($_SERVER['SERVER_PROTOCOL'] . ' 410 Gone'); } }
Jetzt wird es immer noch eine Weile dauern, bis Google die Seiten aus dem Index nimmt, aber ein bißchen Geduld mußt du eben mitbringen. -
Auf dieser Adresse antwortest du mit dem Statuscode 200. Der sagt Google, daß das eine ganz normale Seite ist.
Der Crawler weiß ja nicht, daß der kurze Text von dir nicht gewünscht ist.Bau also eine Abfrage ein, die immer dann 410 sendet, wenn der Beitrag nicht mehr existiert.
-
-
Wenn du das Uploadverzeichnis geändert hast, dann brauchst du dafür einen absoluten Serverpfad.
Die Maske dafür liegt in »Einstellungen/Verschiedenes«. -
Du kannst dennoch Permalinks einstellen; WordPress leitet dann Anfragen nach den alten Adressen auf die neuen um.
Bevor du eine bestimmte Struktur einstellst, wäge aber gut ab. Entscheidungshilfe.
-
Ganz dringend muß das WordPress aktualisiert werden. Der Aufwand für die anderen Aufgaben läßt ohne nähe Angaben nicht einschätzen.
-
Die 1 kann auch entstehen, wenn man eine Funktion mit echo aufruft, die TRUE (den Wahrheitswert) zurückgibt.
-
Das ist eigentlich ganz simpel: Lege ein Verzeichnis »ragtek_blogstats« an, und erstelle darin die Datei »blogstats.php«:
PHP
Alles anzeigen<?php /* Plugin Name: Ragtek Blogstats Plugin URI: http://ragtek.org/ Description: Gibt die Zahl der Artikel, Kommentare und Benutzer aus. Version: 0.1 Author: Daniel Fatkic Author URI: http://ragtek.org/ */ if ( ! function_exists('ragtek_blogstats') ) { /** * Erzeugt eine kleine Statistikbox * @param string $before Zeichen vor der Box. * @param string $after Zeichen nach der Box. * @param bool $echo Ausgabe direkt oder als String */ function ragtek_blogstats( $before='<li><div class="sidebarbox">', $after='</div></li>', $echo = TRUE ) { global $wpdb; $count_posts = wp_count_posts('post'); $countresult = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1' AND comment_type != 'trackback' AND comment_type != 'pingback'"); $users = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->users"); $output = $before . ' <h2>Blogstatistik:</h2> Anzahl der Artikel: ' . $count_posts->publish . '<br /> Anzahl der Kommentare: ' . $countresult . '<br /> Anzahl der reg. Benutzer: ' . $users' . $after; if ( $echo ) { echo $output; return; } // Ausgabe als String zu Weiterbearbeitung. return $output; } }Kopiere das Verzeichnis in dein Pluginverzeichnis, und aktiviere das Plugin »Ragtek Blogstats«.
In deinem Theme (vermutlich in der Sidebar) ruftst du die Funktion dann auf:
Ich würde das »Anzahl der« jeweils direkt durch die Zahl ersetzen: 200 Artikel, 400 Kommentare, 8 Benutzer. Aber das ist Geschmackssache.
Gruß
Thomas -
Man könnte die verlinkte Seite auch ganz einfach per robots.txt sperren.
-
Welche Freeware ggf. html-Editor gibt es um "en masse", pro Verzeichnis, die Hackercodes rauszuschmeißen?
Unter Windows halte ich PSPad für recht brauchbar. Das kann in mehreren Dateien zugleich suchen und ersetzen, auch in Binärdateien. Regex versteht es auch einigermaßen.
Unter Linux rockt natürlich Emacs.Nur fürs Protokoll: Ich habe ein flaues Gefühl bei dem Gedanken, daß du das trotz deiner Unsicherheit selber machst. Ich verstehe, daß du kein Geld ausgeben willst, und ich möchte hier auch nicht für mich werben. Aber kennst du nicht einen PHP-Freak, mit dem du einen Gefallen tauschen kannst?
es ist bei allen php-Dateien immer wieder derselbe Code, der hiermit anfängt: eval(base64_decode
Das ist der Teil, den du finden sollst. Interessanter ist ist der andere Teil, durch den der Angreifer wieder hereinkommt.
Gruß
Thomas