Archiv für die Kategorie ‘Server Administration’

Klassiche .htaccess Lösung für Suchmaschinenfreundliche URLS/Permalinks

Freitag, 27. April 2012

Die ersten Schritte in der Suchmaschinenoptimierung beinhalten drei große Programmieraspekte – eine passende und themenbezogene Domain (vielleicht das unwichtigste von drei), ein aussagekräftiger Meta Titel und vor allem die URL. Die URL muss für einen Menschen verständlich sein und muss am besten Keywörter enthalten, die noch im Text vorkommen und eine Aussage bezüglich des Inhaltes treffen. Dies bedeutet, dass Ihre URL am besten wie ein normaler Satz aufgebaut werden muss, klar identifizierbar sein muss und durch eine Person merkbar ist. Was sollten Sie vermeiden und wie kommen Sie an Suchmaschinenfreundliche URLs, die auch Suchmaschinen wie Google gefallen?

Beispiele für ineffektive und schlechte URLs

Vor allem wenn Sie mit PHP Ihre Seite aufbauen, könnten solche URLs vorkommen:

textsc.php?aif=232&atrr=24322jj
index34.php
neue_seite.html

Diese URL kann sich keiner merken und die Suchmaschine/Mensch können keine Bezug zu der Inhalt der Seite gewinnen, die unter dieser URL angezeigt wird. Solche URLS sollten Sie komplett vergessen, wenn Sie nach vorne in den Suchmaschinenergebnissen kommen wollen.

.htaccess Rewrite Lösung für Suchmaschinenfreundliche Permalinks

Unabhängig von der Programmiersprache, können Sie mit .htaccess agieren und eine allgemeine Lösung für das Auslesen beliebiger URLs, die Sie vorher generieren können. Wichtig hier ist dass wir trotzdem auf existierende Dateien und Ordner zugreifen können. In dieser Aufstellung betrachten wir den Fall, dass Sie bereits eine Suchmaschinenfreundliche URL generiert und aufgerufen haben, beispielsweise so: /alufelgen-mit-sommerreifen-kaufen.html


RewriteBase /
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php

Was passiert oben?

  • Der Apache Modul RewriteEngine wird mit der korrekten Base (von welchen Ordner das Auslesen starten soll, in diesem Fall Root /) gestartet, diese Modul ist eine unvermeidliche Voraussetzung
  • Zwei Voraussetzungen werden abgefragt – ob die aufgerufene URL tatsächlich eine existierende Datei oder Ordner darstellt, beispielsweise Ihre Bilder oder PDF Dokumente, auf die Sie weiterhin verlinken wollen.
  • Wenn die URL eine für den Server PhantasieURL ist, also keine existierende Datei, so rufe die index.php datei, als würde in der Adressenleiste index.php stehen.
  • In der index.php Datei können Sie dann, in dem Fall mit PHP, die URL auseinander nehmen und die entsprechende Seite in Ihrer Datenbank finden und darstellen.
  • Fertig!

Diese Lösung reicht für 99% der Fälle und damit können Sie eine sehr saubere Struktur in Ihrer Seite hinbekommen, die auch für Suchmaschinen und Menschen eine bessere Benutzererfarung ermöglichen wird. Wie Sie in PHP die URL manipulieren können, werden wir demnächst demonstrieren.

Gerne helfen wir Ihnen mit der Einrichtung von Suchmaschinenfreundlichen URLs weiter. Weitere Suchmaschinentipps finden Sie auf unserer Seite.

HTTPS mit .htaccess für eine Domain erzwingen und umschalten

Mittwoch, 25. April 2012

Manchmal ist es in der Programmierung von Webseiten notwendig, dass Sie an bestimmte Stellen eine gesicherte Verbindung zu dem Besucher zur Verfügung stellen, angenommen Sie haben ein SSL Zertifikat erworben und mit Ihrem Apache Server installiert. Sie können aber nicht erwarten, dass Ihre User über die Existenz Ihres SSL Zertifikats informiert sind und Ihre Seite immer direkt mit https:// aufrufen. Dies bedeutet, dass Sie sich darum kümmern müssen auf das HTTPS Protokoll umzusteigen, sofern Sie merken, dass der User Ihre Seite einfach über HTTP aufruft. Insbesondere ist das wichtig, wenn Sie sensible Daten wie Bestellungen mit Kreditkarten usw. handhaben. Die Manipulierung der .htaccess Datei wird oft als Teil der Serveradministration angesehen, die wir auch für Sie gerne erledigen können.

Wie kann ich auf HTTPS umschalten?

Sie können beliebig viele Vorgehensweisen für das Umschalten zwischen HTTPS und HTTP implementieren, nachfolgend präsentieren wir aber eine plattformunabhängige Lösung – ein Sprung von HTTP auf HTTPS unter Verwendung der .htaccess Datei. Dies ist durch ein sog. RewriteEngine von Apache möglich.

Umsteigen auf HTTPS in der .htaccess Datei

Betrachten wir nun folgenden Programmier-snippet:

RewriteBase /
RewriteEngine on

RewriteCond %{SERVER_PORT} !443
RewriteRule (.*) https://%{HTTP_HOST}$1 [R=301,L]

Was passiert hier?

  • Zunächst wird definiert, dass der RewriteEngine eingeschaltet wird und von welchen Ordner das Umschreiben anfangen soll, in dem Fall Root (/)
  • RewriteCond ist wie eine Wenn/Dann Klausel – sollte der ServerPort momentan nicht (!) 443 sein (SSL), sondern beispielsweise 80 (HTTP), dann bitte eine engültige Weiterleitung (R=301) zu der https:// Version der Seite machen und hinterher nichts mehr machen (L)
  • Hinter {HTTP_HOST} verbirgt sich Ihre Domain, daher funktioniert die Programmierung für eine beliebige Domain
  • $1 ist der Rest der Adresse, die gerade aufgerufen wird, sie wird wie ein Wunder direkt angehängt :)

Weitere RewriteCond Klausel können vor der obigen eingefügt werden, sobald am Ende ein [AND] steht, so werden diese Klausel in ein logisches UND zusammengeführt.

Wie kann ich sonst SSL/HTTPS für meine Domain erzwingen?

Dies können Sie mit PHP, ASP usw. erledigen, unsere obige Lösung ist eleganter, da sie plattformunabhängig ist. Wir werden demnächst darüber bloggen.

301 Weiterleitung in der .htaccess Datei von Apache

Montag, 12. Dezember 2011

Logo von ApacheFalls Sie einen Linux Server mit Apache als Webserver betreiben, so verfügen Sie über eine sogenannte .htaccess Datei, wo Befehle bezüglich untergeordneter Ordner oder Virtual Hosts vorgenommen werden. Die Befehle, die in der Datei vorkommen, werden wirksam ohne dass Apache neu geladen oder gestartet wird. Heute betrachten wir die Möglichkeit, in der .htaccess Datei von Apache eine endgültige serverseitige 301 Weiterleitung (301 Redirect) zu programmieren und werden darüber sprechen warum und wann diese erforderlich ist.

Wann brauchen wir eine 301 Weiterleitung?

Viele Webmaster, die aktiv an ihre Seiten arbeiten, gehen durch diverse Entwicklungsphasen der Programmierung, wo sich die Seitenstruktur und sogar die komplette URL Struktur ändert. Jedoch bleiben manchmal die Inhalte erhalten, nur die URL ändert sich. Ihre Aufgaben als Webmaster sind nun, Usern zu der aktuellen Seite weiterzuleiten und gleichzeitig die Suchmaschinen zu informieren, dass die Adresse (URL) einer unserer Webseiten sich geändert hat, so dass die jeweilige Suchmaschine zu der neuen, statt zu der alten URL weiterleiten kann. Wenn Sie die Weiterleitung nicht mit dem 301 Statuscode durchführen, so ist das, zumindest für die Suchmaschine, eine nicht endgültige Weiterleitung (302 Redirect), was nicht erwünscht ist. Die Suchmaschinen wie Google wollen ja immer den aktuellsten Inhalt ihren Besuchern zur Verfügung stellen. Einen ganz wichtigen Punkt bei der 301 Weiterleitung ist die Tatsache, dass Sie damit den bisherigen Pagerank der alten Seite auf die neue übertragen und nicht neu aufbauen müssen.

Syntax – 301 Redirect in der .htaccess Datei

Falls Sie über Zugriff auf Ihre  .htaccess Datei verfügen, die alte und neue URLs bekannt sind und Sie eine 301 Weiterleitung in der .htaccess Datei implementieren wollen, so müssen Sie folgenden Befehl in der .htaccess Datei von Apache hineinschreiben:

redirect 301 /alte-adresse.html http://www.IHREDOMAIN.de/neue-adresse.html

Hier finden Sie vier Teile des Ausdruckes:

  • redirect
    Das ist der Befehl zur Weiterleitung
  • 301
    Das ist der Statuscode, der bei der Weiterleitung zurückgegeben wird, äußerstwichtig für Suchmaschinen und Aktualisierung des Index
  • /alte-adresse.html
    Die Adresse, die nicht mehr aktuell ist, die aber noch in dem Index der Suchmaschinen zu finden ist, die Adresse, die Ihre Besucher noch sehen und ggf. kennen
  • http://www.IHREDOMAIN.de/neue-adresse.html
    Die Adresse, zu der endgültig weitergeleitet wird. Wichtig – diese Adresse immer mit http:// und Domain angeben.

Weitere Weiterleitung müssen Sie in einer neuen Zeile eingeben, ohne ein Sonderzeichen als Delimiter zu nutzen, in der .htaccess Datei ist die neue Zeile ein Delimiter.
Führen Sie die Weiterleitungen vor Ihre mod_rewrite Anweisungen, worüber wir Sie bereits in dem vorherigen Artikel über die Einrichtung von mod_rewrite für suchmaschinenfreundliche URLs informiert haben.

301er permanente Weiterleitung mit PHP

Lesen Sie hier, wie Sie auch mit PHP eine 301 Weiterleitung programmieren können.

Fazit

Die Nutzung von 301 Weiterleitungen ist ein Schritt Ihre Webseite suchmaschinenfreundlicher zu machen. Unser professionelles CMS System nutzt ausschließlich solche Weiterleitungen. Erfahren Sie mehr über unser CMS use (the) web.
Brauchen Sie Hilfe bei der Einrichtung von 301 Weiterleitung in Ihrer .htaccess Apache Datei unter Linux? So steht Ihnen der Technik-team der use-media zur Verfügung.

Virtual Hosts – mod_rewrite funktioniert nicht mit meiner .htaccess Datei

Freitag, 09. Dezember 2011

Heuzutage sind Suchmaschinen-freundliche URLs lebensnotwendig, wenn ein Webmaster seine Seite für die Suchmaschinen gut optimieren möchten. Bei vielen Webseiten und vor allem mit der Arbeit von professional CMS können und werden die einzelnen Seiten nicht auf dem Server angelegt, sondern sie werden mit einer künstlichen URL versehen, die von dem Programmierer interpretiert werden muss. Hiermit bekommen Sie statt /index.php?id=34&cat=3, eine solche URL – /guenstige-angebote-fuer-reifen.html (sogenannte Permalinks). Dies ist problemlos möglich, wenn das Apache Modul mod_rewrite eingesetzt wird – als Zusatz-befehl in der .htaccess Datei, die entweder im Virtual Host Einrichtung oder im Root Verzeichnis der Webseite liegt.

Problematik

Es gibt viele Wege in der .htaccess Datei die mod_rewrite Anweisung zu programmieren. Jedoch ist es am häufigsten, dass mod_rewrite so eingesetzt wird, dass alle existierenden Dateien auf dem Server direkt aufgerufen werden können und alle anderen Pfade, die angefordert werden, werden an die index.php Datei geleitet zwecks Interpretation/Parsen. Dies funktioniert aber nicht immer sofort und viele Webmaster haben das Problem die Ursache zu finden. Wir betrachten heute einige der Fehler, die höchstwahrscheinlich auch bei Ihnen zutreffen.

Alle Angaben, die wir nachfolgend betrachten, können auch in der VirtualHost-Einrichtung vorgenommen werden.

Ursache 1 – Unterstützung durch Apache

Stellen Sie sicher, dass das Apache Modul mod_rewrite tatsächlich auf dem Server verfügbar ist. Wenn Sie sich nicht sicher sind, so können Sie Ihren Provider oder Administrator danach fragen.

Ursache 2 – Syntax

Anbei eine funktionierende  Einrichtung in der .htaccess Datei für die Nutzung von mod_rewrite für Suchmaschinenfreundliche URLs:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php

Die obigen Befehle richten folgendes ein:

  1. Schalte mod_rewrite an
  2. Falls die aufgerufene Adresse nicht eine tatsächlich auf dem Server liegende Datei oder Ordner ist, so bitte die so tun, als wäre die index.php Datei aufgerufen.

Achten Sie darauf, dass jede Zeile umbrochen wird (das ist der Delimiter für .htaccess), dass keine Raute vor einer Zeile ist (die Raute kommentiert die Zeile aus) und dass die index.php Datei existiert. Nun können Sie in der index.php Datei die URL parsen und Ihre entsprechenden Inhalte laden.

Ursache 3 – Syntax mit RewriteBase

Manchmal benötigen Sie die Angabe über die Basis der Weiterleitung mit RewriteBase, in dem Fall der Rootverzeichnis:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php

Falls die .htaccess ein einem Ordner liegt, der nicht die index.php entspricht, falls beispielsweise Symlinks eingesetzt werden, so benötigen Sie eine richtge Basis für Ihre Weiterleitung. Dies könnte das Problem bei Ihnen sein, normalerweise wird aber diese Einstellung nicht benötigt.

Ursache 4 – Übergeordneter Ordner mit AllowOverride None für .htaccess gesperrt

Eine Ursache, die nach der Sie vielleicht stundenlang suchen könnten – stellen Sie sicher, dass die allgemeine Virtual Host Einstellung für den Ordner, in dem sich die .htaccess Datei befindet, nicht für nachträgliche Änderungen von .htaccess Datei Befehle gesperrt ist. Dies geschieht durch folgendes Befehl:

AllowOverride None

Dies schließt jegliche Wirkung von der .htaccess Datei und somit von Ihrer URL Weiterleitung. Nutzen Sie am besten – AllowOverride All, natürlich nur für den entsprechenden Ordner.

Fazit

Obige Einstellungen sind normalerweise mehr als genug für eine problemfreie Installation.

Wenn Sie aber immer noch ein Problem mit Ihrer Serveradministration und Einrichtung von Ihrer .htaccess haben - dann können Sie aber uns gerne ansprechen.
use-media hilft Ihnen weiter, senden Sie uns eine E-Mail oder rufen Sie an – 02161 177747.