Archiv für die Kategorie ‘Programmierungen’

404 Header mit PHP und mod_rewrite

Freitag, 30. Dezember 2011

Wenn Sie sicherstellen wollen, dass Seiten aus dem Index einer Suchmaschine schnellstens entfernt werden, so sollten diese Seiten als – 404 nicht gefunden – dargestellt werden. Es ist aber hier ganz wichtig zu bemerken, dass es nicht ausreicht, dass Sie zu Ihrer Custom 404 Seite einfach weiterleiten, sondern dass Sie auch einen korrekten 404 Header als erstes liefern. Wenn aber der Apache mod_rewrite benutzt wird, so werden unter Umständen nicht existierende Seiten zu der Startseite weitergeleitet. Im schlimmsten Fall geschieht dies durch eine 302-er Weiterleitung, was Sie unbedingt meiden wollen, wenn Sie eine gute Suchmaschinenoptimierung für Ihre Webseite hinbekommen wollen.

Heute betrachten wir den Fall wie Sie trotz mod_rewrite einen 404 Header mit PHP liefern können und somit Google-gerecht handeln.

Problematik

Sie haben eine angepasste 404 Seite und Sie möchten diese statt der Startseite zeigen, wenn eine Seite aufgerufen wird, die Sie gerne als 404 bezeichnen wollen? Sie bekommen für nicht existierende URLs immer die Startseite? Lesen Sie weiter wie Sie dies nun lösen können.

Grundsätzliche Regeln

Wenn Sie eine 404-er Seite mit PHP und mod_rewrite ordnungsgemäß programmieren wollen, so müssen Sie folgendes beachten:

  •  Keine Weiterleitung zu Ihrer Custom 404 Seite – dies ist keinesfalls möglich, denn durch die Weiterleitung wird der Header mit einem Redirect Code zurückgeben (301, 302). Das heißt, dass beim Aufruf der fehlenden Seite keine Weiterleitung stattfinden darf, insbesondere wenn Sie den 404 Header zurückgegeben haben und somit die Ausgabe der Seite gestartet haben.
  • Erkennung der Seite, die nicht gefunden werden soll – bevor Sie die URL der Seite analysieren, die aufgerufen wird, sollten Sie erkennen können, dass diese Seite einen Header 404 zurückgeben soll. Wenn Sie die Seite rechtzeitig erkennen können (bevor jegliche Ausgabe auf dem Browser erfolgt ist), so können Sie noch entscheiden welche Header und welchen Inhalt Sie zeigen. Vielleicht würden Sie einen Suchmuster in der URL erkennen können oder Sie fragen Ihre Datenbank einfach ab, ob die Seite existiert.
  • Angepasste 404 Seite – Sie müssen eine angepasste 404 Seite in Ihrem CMS/Internetauftritt angelegt haben, wo Sie am besten zu ähnlichen Inhalten weiterleiten können. Diese Seite sollte sich schon von den übrigen Seiten Ihres Internetauftritts unterscheiden. Angenommen diese Seite hat folgende URL – Ihre_404.html.

Lösung – 404 Header mit mod_rewrite

Wenn Sie PHP und mod_rewrite einsetzen, ist es sehr wahrscheinlich, dass Sie eine Funktion zur Dekodierung der URL haben. Angenommen diese heißt DecodeURL(). So können Sie nun vorgehen:

if (Prüfung, ob Seite nicht existiert) {
header( "HTTP/1.0 404 Not Found" );
$_SERVER['REQUEST_URI'] = "/Ihre_404.html";
}

DecodeURL();

Was passiert hier?

  • Es wird geprüft, ob für die jetzige Seite einen Header 404 zurückgegeben werden soll
  • Der 404 Header wird als erstes zurückgegeben
  • Die URL der aufgerufenen Seite wird dynamisch geändert, als hätten Sie Ihre Custom 404 Seite aufgerufen
  • Sie schreiten nun mit der Dekodierung der URL fort – Sie sehen die 404-er Seite und der Besucher (egal ob Suchmaschine oder Benutzer) weißt Bescheid

Fazit

Einen 404 Header zu liefern ist äußerst wichtig für die Erfahrung, die Ihre Besucher auf Ihre Seite machen. Sie dürfen nicht bei nicht existierenden Inhalten einfach zu der Startseite weiterleiten, denn Sie werden dadurch Ihre Besucher nur frustrieren. Die Anpassungen in dem Index der Suchmaschinen wird auch mit einer Weiterleitung viel langsamer erfolgen und Sie wollen ja, dass Sie aktuelle Inhalte indexiert werden.

Wenn Sie Hilfe bei dieser Umstellung benötigen, so stehen wir Ihnen gerne zur Verfügung. Wir bieten professionelle CMS Lösungen, wo diese Aspekte der Suchmaschinenoptimierung und der Benutzererfahrung bereits berücksichtigt sind – schauen Sie sich einfach unsere Produkte an.

WordPress Update – Dateien konnten nicht kopiert werden, Die Installation ging schief

Freitag, 16. Dezember 2011

Wordpress LogoWordPress hat neulich eine neue Version 3.3 herausgestellt, die unter anderem viele neue coole Features bietet. Cool ist auch die Art und Weise wie man die komplette Version von WordPress aktualisieren kann. Aber manchmal tut das Updatemodul leider nicht was es soll.

Problematik

Sind Sie vielleicht auf diese Fehlermeldung von WordPress beim Update auf die neue Version von WordPress gestolpert? Hier noch mal die Fehlermeldung:

Dateien konnten nicht kopiert werden.

Die Installation ging schief

Wir versuchen nun die möglichen Ursachen dafür zu listen und eine Ursache, die uns passiert ist, zu erläutern.

Lösungen

  • Falsches FTP Passwort – Zugangsdaten
    Es kann sein, dass Ihr FTP Konto nicht mehr gültig ist oder dass Sie sich beim Passwort eingeben verschrieben haben. Überprüfen Sie den Host und den FTP-Benutzernamen
  • PHP Version < 5
    Die neue Version 3.3 erfordert zwingend PHP 5 auf Ihrem Server. Falls Sie Ihren Server selber betreiben, so sollten Sie in Richtung PHP Update denken oder gleichzeitig PHP4 und PHP5 ausführen lassen können, damit Sie diese Hürde überspringen können. Falls Sie auf PHP4 angewiesen sind, so können Sie die letzte 3.1 Version von WordPress hier herunterladen. Jedoch ist es sehr empfehlenswert auf PHP5 umzusteigen, alleine aus Sicherheitsgründen.
  • Zugriff auf Dateien nicht gestattet – Wahrscheinlichste Problematik
    Beim Update auf die letzte Version 3.3 haben wir folgende Fehlermeldung bekommen – Dateien konnten nicht kopiert werden. Die Installation ging schief. Wie Sie sehen, gibt es keinen deutlich genannten Grund hierfür, was uns ziemlich frustriert hat. Lösung – wir haben zuerst von WordPress 2.8.4 auf 3.1 händisch umgestellt, denn das Updatemodul wollte selber nicht. Dabei haben wir die Dateien manuell kopiert und ersetzt, nämlich unter SSH mit Benutzer root. Dies hatte als Folge, dass sämtliche Dateien von WordPress einen neuen Besitzer hatten (root) und das untergeordnete FTP Konto natürlich keinen Zugriff hatte diese zu überschreiben. Erst nachdem wir alle Dateien mittels chown dem richtigen Benutzer zugeordnet hatten, konnten wir problemfrei auf WordPress Version 3.3 umsteigen und erfolgreich updaten.

Allgemeiner Hinweis und Fazit

Unterschätzen Sie niemals den Bedarf für Backup. Bei der Versionsaktualisierung wird auch die MySQL Datenbank geändert, deswegen bitte gleich die komplette Verzeichnisstruktur und Datenbank sichern.

Doppelte title-Tags in WordPress vermeiden

Dienstag, 29. November 2011

Viele Webmaster versuchen ihre WordPress Blogs ordnungsgemäß und “Google”-gerecht einzusetzen. Dazu trägt zwingend die Eingabe der Seite zur Überprüfungs ins kostenlose Tool von Google – Webmaster-Tools. Dort kann man erfahren, ob sein WordPress eventuelle Probleme mit dem Google-Crawler hat, was am meisten gesucht wird und ob es Probleme mit HTML gibt. Dazu zählen doppelte “title”-tags, die von Google unerwünscht sind. Sie sind deswegen unerwünscht, denn sie lassen Google wissen das wäre eine gleiche Seite doppelt aufgeführt, was ihre Wichtigkeit auf, in diesem Fall, zwei verteilt. Das ist auf jeden Fall ein Wichtigkeitsverlust, den wir hiermit vermeiden wollen.

Problem

Im Google Webmaster-Tools hat Ihr WordPress doppelte title-Tags, unter anderem von der Startseite. Dies trifft zu, wenn Sie mehrere Beiträge auf der Startseite haben und eine Blätterfunktion es ermöglicht, ältere Beiträge zu sehen. Bereits ab der Seite zwei ändert sich der Title Tag nicht, obwohl die Seite eine andere ist. Nachfolgend lösen wir das Problem, durch das Programmieren von einem kleinen Snippet für die Seitennummer von WordPress:

Lösung

  1. Finden Sie das aktuell in Ihrem Blog eingesetzte WordPress Theme
  2. Öffnen Sie die Datei header.php und suchen Sie nach dem Title Tag
  3. Der title Tag sollte in etwas so aussehen:
    <title><?php wp_title('&amp;laquo;', true, 'right'); ?> <?php bloginfo('name')?></title>
    
  4. Nun können Sie den folgenden Snippet hinzufügen:
    echo (isset($paged) &amp;&amp; $paged !="" ? " - Seite ".$paged: "");
    

    Hier wird die Variable $paged eingesetzt – falls Sie gesetzt ist und nicht leer ist, so enthält sie die aktuelle Seitennummer.

  5. So sollte Ihr title-Tag aussehen, nach der Änderung:
    <title><?php wp_title('&amp;laquo;', true, 'right'); ?> <?php bloginfo('name')?><?php echo ($paged !="" ? " - Seite ".$paged: ""); ?></title>
    
  6. Laden Sie die Datei hoch – Fertig!

Nun können Sie Google Zeit lassen den Unterschied zu erkennen. Dies müsste maximal 30 Tage, unserer Erfahrung nach, dauern. Somit haben Sie die doppelten “title”-Tags weg!

Weitere Probleme mit Doppelte Title Tags

Manchmal kann es dazu kommen, dass auch andere Seiten doppelte Title-Tags haben – beispielsweise gleich benannte Tags und Kategorien. Diese werden von WordPress Meta Title-technisch gleich behandelt. Schauen Sie zu, dass Sie entsprechend umbenennen – so erhalten sie andere Title-tags.

Fazit

Wir haben diese Änderungen für unseren WordPress eingesetzt – haben Sie es geschafft?
Falls Sie Hilfe benötigen, so lassen Sie sich helfen – www.use-media.de oder 02161 177747 und Ihr Problem ist gelöst. Wir können für Sie eine professionelle WordPress Installation vornehmen.