Deprecated: Assigning the return value of new by reference is deprecated in /var/www/vhosts/alin.eu/subdomains/blog/httpdocs/wp-settings.php on line 472 Deprecated: Assigning the return value of new by reference is deprecated in /var/www/vhosts/alin.eu/subdomains/blog/httpdocs/wp-settings.php on line 487 Deprecated: Assigning the return value of new by reference is deprecated in /var/www/vhosts/alin.eu/subdomains/blog/httpdocs/wp-settings.php on line 494 Deprecated: Assigning the return value of new by reference is deprecated in /var/www/vhosts/alin.eu/subdomains/blog/httpdocs/wp-settings.php on line 530 Deprecated: Assigning the return value of new by reference is deprecated in /var/www/vhosts/alin.eu/subdomains/blog/httpdocs/wp-includes/cache.php on line 103 Deprecated: Assigning the return value of new by reference is deprecated in /var/www/vhosts/alin.eu/subdomains/blog/httpdocs/wp-includes/query.php on line 21 Deprecated: Assigning the return value of new by reference is deprecated in /var/www/vhosts/alin.eu/subdomains/blog/httpdocs/wp-includes/theme.php on line 623 Web und Netzwerk

Das Apache mod_rewrite Modul

Thursday, 12. June 2008 11:56

Das Modul mod_rewrite für den Apache Server dient dazu die angeforderte URL abzuwandeln. Mit der RewriteEngine des Apache-Webservers ist es nämlich möglich die angeforderte URL mithilfe von Regulären Ausdrücken anzupassen. Besonders Suchmaschinen nehmen dies dankbar an. Sie meiden Webseiten mit langen Parameterlisten wie

http://www.example.com/?link=bla&parameter2=2342342&color=black

Solche URLs können mit mod_rewrite intern beliebig umgesetzt werden. Die obige URL lässt sich so zum Beispiel auf

http://www.example.com/link/bla/sid/2342342/color/black

umwandeln. Auf der anderen Seite gibt es Stimmen die der Meinung sind man sollte bei der Suchmaschinenoptimierung auch tiefe Verzeichnisse in der URL vermeiden. Kein Problem, die URL lässt sich mittels mod rewrites Regulären Ausdrücken beliebig verändern. Der Benutzer bzw. die Suchmaschine bekommen von der internen Umleitung im Server nichts mit.

Im Folgenden gebe ich eine kleine Anleitung, wie man mod_rewrite auf seinen Server nutzt. Auf den meisten Servern ist mod_rewrite bereits vorinstalliert, viele Provider installieren das Modul auch gerne nach. Ist das bereits der Fall, so kann man mit Schritt 5 beginnen, ansonsten starten wir mit Schritt 1:

Schritt 1: Wir haben also unseren eigenen Server, der Apache läuft und mod_rewrite ist noch nicht installiert, zunächst sollten wir überprüfen ob wir die passende Bibliotheken auf dem System verfügbar haben. Das ist in den meisten Fällen der Fall. Wir überprüfen es dennoch indem wir uns in die Konsole einloggen und den Befehl find / -name mod_rewrite.so ausführen. Bei SuSe 9.1 wird diese Bibliothek (shared library, .so steht für shared object) im Verzeichnis /usr/lib/apache2/mod_rewrite.so gefunden. Ist dies der Fall gehe zu Schritt 2, ansonsten wird es schwieriger, man muss die Bibliothek erstmal irgendwo auftreiben.

Schritt 2:

Öffne die Datei /etc/sysconfig/apache2 und suche darin die Zeile APACHE_MODULES, dort fügt man am Ende einfach rewrite dazu:

Das sollte dann etwa so aussehen:

APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authn_dbm autoindex cgi dir env expires log_config mime negotiation setenvif ssl php5 perl python suexec rewrite

Schritt 3:

Eventuell ist noch das Anpassen der httpd.conf Datei gefragt. Diesen Schritt konnte ich bei meinem Webserver aber einfach weglassen. Wir finden die httpd.conf Datei mit dem Befehl "find / -name httpd.conf". Sucht in der Datei die auskommentierte Zeile in der das Apache Mod Rewrite Modul gestartet wird

“#LoadModule rewrite_module modules/mod_rewrite.so"

und entfernt die Raute davor. Ist die Zeile nicht vorhanden müsst ihr sie neu einfügen (natürlich ohne Raute ;) ). Achtet darauf, dass der Pfad zur mod_rewrite.so Datei so stimmt (in Schritt 1 haben wir den Pfad ermittelt).

Schritt 4:

Nun noch den Apache mit /etc/init.d/apache2 restart graceful neu starten. Das wars.

Schritt 5 - Funktionstest:

mod_rewrite sollte nun laufen. Man kann es auf einzelne Verzeichnisse anwenden wenn man eine .htaccess Datei in dem betreffenden Verzeichnis anlegt. Auf den ganzen Webauftritt wendet man es somit also an indem man sie in das Rootverzeichnis des Dokumentenverzeichnisses des Servers legt. Lege eine .htaccess-Datei an und schreibe darin testweise die Zeilen:

Options +FollowSymLinks

RewriteEngine On

und rufe das Verzeichnis mit dem Webbrowser auf, in welchem du die .htaccess-Datei angelegt hast. Erscheint ein 500, Internal Server Error, dann ist bei der Installation etwas schiefgelaufen. Keine Fehler bedeutet, dass alles geklappt hat. Die .htaccess-Datei kann nun um beliebige Befehle für mod_rewrite erweitert werden.

Probiere hierfür zum Beispiel:

RewriteEngine on

RewriteRule index.html index.php um mit der Eingabe von index.html im Browser auf die index.php geleitet zu werden. (Eine index.php muss hierfür natürlich auch im Verzeichnis vorhanden sein)

Schritt 6 - die Anwendung:

Wie Ihr bereits im Schritt 5 bemerkt habt, wird das Modul im jeweiligen Verzeichnis mit

RewriteEngine On

aktiviert.

Die Umschreiberegeln
Die Befehle für das Umschreiben der URLs werden in den darauf folgenden Zeilen eingetragen und sind wie folgt aufgebaut: Als erstes wird die Zeichenkette RewriteRule angeführt, gefolgt von dem Suchmuster (als “Regulärer Ausdruck”) und der Zeichenkette der das Suchmuster ersetzen soll. Nicht zu vergessen die Flags in eckigen Klammern.

Eine Rewriteregel sieht also so aus:
RewriteRule ^/diesedateirufichimbrowserauf\.html$ zudieserwirdgeleitet.php [NC]

Diese Regel bewirkt wie klar ersichtlich sein dürfte, dass jede Anfrage auf die Datei diesedateirufichimbrowserauf.html intern auf die Datei zudieserwirdgeleitet.php umgeleitet wird. Das Flag NC bedeutet “Not Casesensitiv”, die Anfrage reagiert also nicht auf Groß- und Kleinschreibung.

Bedingungen
Häufig wollen wir bestimmte Regeln nur unter bestimmten Bedingungen ausführen. Hierfür haben sich die Entwickler des Moduls die Rewrite Bedingungen ausgedacht. Sie werden vor der Rewrite Regel notiert.

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?meinedomain\.de(/.*)?$ [NC]
RewriteRule \.(gif|jpg|GIF|JPG)$ http://www.meinedomain.de/boeserdieb.jpg [R,L]

Diese Rewrite Bedingung führt dazu, dass fremde Webseiten Bilder von meiner Webseite nicht direkt bei sich einbinden können. Dieser sogenannte Trafficklau wird dadurch verhindert. Das Ausrufezeichen vor dem Domainnamen hinter der Rewrite Condition steht nämlich für ein logisches Nicht und bedeutet, dass alle Bilder auf meinem Server, die von einer anderen Domain aufgerufen wurden auf die Ersatzgrafik boeserdieb.jpg geleitet werden. Das echte Bild bekommen die Besucher der Webseite des Diebes nicht zu gesicht.

Weitere Beispiele findet man auf modrewrite.de. Wer mit dieser Anleitung das Modul nicht zum Laufen bekommen sollte, kann es mal mit diesem Tutorial aus davidscorner probieren, welches ich im Laufe meiner Recherchen für diese Anleitung gefunden habe.

Da es sich bei den Anweisungen für mod rewrite um Reguläre Ausdrücke handelt, weiße ich in diesem Zusammenhang auch noch auf den Artikel zu Reguläre Ausdrücken hin: Reguläre Ausdrücke einfach validieren.

Viel Spaß beim rewriten!

Thema: Webentwicklung | Kommentare (2)

Datendiebe im Web entdecken

Wednesday, 11. June 2008 13:18

Contenträuber stehlen Texte von anderen Webseiten aus verschiedenen Gründen. Entweder weil dem Autor die eigene Kreativität fehlt, oder einfach weil man sich mit möglichst viel Inhalt bei den Suchmaschinen hervorheben möchte.

Plagiate werden aber von Suchmaschinen wie Google erkannt. Ob nun auf der eigenen Webseite unter verschiedenen Adressen der gleiche Inhalt übermittelt wird, oder auf einer komplett anderen Webseite der gleiche Inhalt steht ist hierbei egal. Der Inhalt wird als “Supplemental Result” bewertet, in der Folge sinkt die Seite im Ranking steil ab. Pagerank N/A oder 0 kann die Folge davon sein.

Wer von den Suchmaschinen ignoriert wird, sollte auf http://www.copyscape.com/ seine Webseite einem Plagiattest unterziehen und Datenräuber aufspüren. Eine weitere Möglichkeit der Plagiatsuche, in der man direkt nach einem Text suchen kann findet man auch hier: http://www.textguard.de

Thema: Uncategorized | Kommentare (0)

Satire - Telekom auf den Punkt gebracht

Tuesday, 10. June 2008 19:27

Das Satiremagazin Extra3 hat ein Musikvideo über die Telekom erstellt, in der das Unternehmen kurz und knapp auf den Punkt gebracht wird. Schlechter Service, lange Anschlusszeiten (natürlich nur wenn die Anschlüsse der Konkurrenz geschaltet werden müssen). Man könnte meinen ich könnte mich mit diesen Artikel unbeliebt machen, aber schlimmer kann es mit dem Service derzeit sowieso nicht werden.

Gefunden bei Netzpolitik.org

Thema: Sonstiges | Kommentare (0)

Windows Applikationen unter Linux

Sunday, 8. June 2008 0:32

Nach rund 15 Jahren Entwicklungsarbeit steht Wine 1.0 kurz vor dem Release.

Mittels Wine lassen sich mehr als 1227 Windows-Applikationen unter Linux nutzen. Darunter sind Programme wie Photoshop CS2, Microsoft Powerpoint Viewer 97 und 2003, Word Viewer 97 und 2003 sowie Excel Viewer 97 und 2003. Zum Download der aktuellen Version gelangt man auf der wineHQ-Webseite.

Wine stellt eine Alternative zu Virtualisierungslösungen wie Virtualbox oder den VM Ware Player dar. Im Gegensatz zu Diesen - schafft Wine kein komplettes virtuelles System auf dem PC sondern stellt die Windows API für Programme die unter Linux ausgeführt werden zur Verfügung. Häufig soll dies signifikant schneller sein. Über Erfahrungsberichte würde ich mich freuen.

Thema: Allgemein | Kommentare (0)

Tastatursteuerung von Webformularen mittels Accesskeys

Wednesday, 4. June 2008 23:06

In normalen Applikationen sind sie weit verbreitet: Shortcuts um bestimmte Aktionen in Formularen auszuführen oder Aktionen auf Buttons auszuführen. In Webbrowsern funktioniert das über das Attribut accesskey="buchstabe", das Feld, der Button oder der Link lässt sich dann je nach Browser mittels des Tastendrucks von Alt+Buchstabe oder Alt+Shift+Buchstabe o. a. direkt ansprechen.

Mehr dazu findet man hier:
http://de.selfhtml.org/html/verweise/tastatur.htm

Allerdings bringen die ausgefeiltesten Shortcuts nichts, wenn der Benutzer nichts von ihnen weiß. Man sollte also den Benutzer darauf aufmerksam machen… Zum Beispiel durch Unterstreichen des Buchstabens und einen Tooltip beim MouseOver über den unterstrichenen Buchstaben.

Thema: Webentwicklung | Kommentare (1)

Webbrowser für Personen mit Farbsehschwäche anpassen

Tuesday, 3. June 2008 21:31

Dieser Artikel ist nicht nur für Betroffene interessant.

Viele Webdesigner ignorieren das Problem, das knapp 5% aller Menschen (die meisten davon Männer) haben. “Farbenblindheit” ist dabei der falsche Ausdruck, denn die meisten dieser Gruppe können Farben durchaus wahrnehmen. Die meisten Probleme haben diese Personen bei der Unterscheidung zwischen Rot und Grün. Gemischte Farben wie Orange können sie ebenso mit Gründ verwechseln wie Rosa und Lila mit Blau.

Probleme können Grundsätzlich immer bei

  • kontrastarmen Hintergrund/Vordergrund-Kombinationen entstehen.
  • Ebenso sollten Webdesigner darauf achten, dass wichtige farblich kodierten Informationen zusätzlich noch durch eine andere Form unterschieden werden können. Beispiel: Wenn in einem schwarzen Text die Links schon unbedingt rot oder gar dunkelrot sein sollen, dann sollte man sie durch Fettschreibung oder Unterstreichen hervorheben
  • Die meisten dieser Empfehlungen erhöhen die Lesbarkeit auch für normalsichtige Personen und sind so grundsätzlich sowieso ein guter Rat für jeden Webdesigner.

    Was macht man aber als Betroffener, wenn ein Webdesigner kein Einsehen hat. Eine Notlösung kann es sein - besonders wenn man oft mit einer Webseite zu tun hat, die gegen diese Regeln verstößt - den Browser mithilfe von Stylesheets anzupassen.

    Wir legen dazu (bei Firefox) mit dem Texteditor eine Datei mit dem Namen userContent.css im Verzeichnis C:/Dokumente und Einstellungen/Benutzername/» Anwendungsdaten/Mozilla/Firefox/Profiles/xxx.default/chrom an und schreiben folgenden CSS-Code hinein um alle Links blau und unterstrichen darzustellen:

    @-moz-document domain(blog.alin.eu), domain(www.meinewunschseite.de) {

    a {color: blue ! important; text-decoration: underline ! important; }
    }

    Nun speichern wir das Dokument und schließen alle Browserfenster, erst dann werden die Änderungen aktiv.

    Wie man andere Browser als den Firefox - also zum Beispiel den Internet Explorer anpassen kann, erfährt man hier.

    Das Beispiel wendet die Änderung nur auf bestimmte Webseiten, hier blog.alin.eu und www.meinewunschseite.de an. Durch Weglassen der ersten Zeile und der letzten abschließenden Klammer des Codebeispiel wirkt die Einstellung global.

    Der Fantasie sind kaum Grenzen gesetzt. In wie weit sich der Aufwand lohnt sei im Einzelfall dahingestellt, jedoch kann man damit zum Beispiel auch die lästigen mailto: Links so markieren, dass man sie bereits im Vorfeld erkennt und nicht jedesmal bei Unachtsamkeit das Mailprogramm aufspringt:

    a[href^="mailto:"]:before { content: “\2709 “; }

    Mit diesem Codeschnipsel erscheint ein Briefsymbol vor allen Mailto links. Zum Testen hier ein Mailto Link!

    Eine Liste mit weitere Möglichkeiten gibts bei squarefree.com

    Thema: Tipps | Kommentare (0)

    PHP komfortabel debuggen mit Firebug

    Wednesday, 28. May 2008 21:03

    Mithilfe der Firefox Extension ‘Firebug‘ lassen sich PHP-Skripte einfach debuggen. Lästige ‘echo’ Ausgaben von fehlerträchtigen Variablen entfallen somit. Damit man dies nutzen kann muss man allerdings erst eine PHP PEAR Erweiterung auf dem Webserver installieren, die PHP-Dateien anpassen und natürlich das Firefox-Plugin installieren.

    Eine deutsche Anleitung hierzu findet man bei alldev.de!

    Zur Extension ‘Firebug’ gibt es mittlerweile eine Reihe von nützlichen Erweiterungen die einen die Arbeit beim PHP-programmieren erleichtern. So kann man zum Beispiel mittels Firecookie Cookies einer Webseite bearbeiten, löschen und anlegen. Mithilfe der Logfunktion kann man alle Cookie-Manipulationen durch eine Webseite protokollieren.

    Thema: Entwicklung, Webentwicklung - Fehlerbehebung | Kommentare (0)

    Den Funktionsumfang von PHP durch PEAR erweitern

    Wednesday, 28. May 2008 21:02

    PEAR (PHP Extension and Application Repository) ist eine Bibliothek von Modulen und Erweiterungen für die Skriptsprache PHP. PEAR ist in Bezug auf PHP vergleichbar mit Standardbibliotheken wie die „Standard C Library“ für C oder das Swing-Framework in Java.

    Neben PEAR gibt es auch noch PECL (Die PHP Extension Community Library), sie ist ein ehemaliger Teil von PEAR, die nur C-Erweiterungen anbietet. Sie wurde im Oktober 2003 aus PEAR ausgegliedert und wird nun als eigenständiges Projekt fortgeführt.

    Einen Überblick über die PEAR Funktionen findet man in diesem E-Book:
    http://www.galileocomputing.de/openbook/php_pear/

    Wie PEAR installiert wird hängt davon ab, ob man einen eigenen Webserver besitzt oder auf den Webspace bei einen Shared Webhost verwendet. Das eigentliche Installationstool steht zum Download auf http://pear.php.net/ bereit. Die heruntergeladene Datei PEARinstaller.php muss wie jede andere PHP Datei über den Webbrowser per HTTP aufgerufen werden und führt den Anwender komfortabel mittels eines Installationsassistenten.

    Fehler bei der Installation unter SuSE:
    Vermisst man nach der Installation des PEAR Pakets unter SuSE den Kommandozeilenbefehl ‘pear’, der zur Konfiguration der pear Installation verwendet wird, sollte man den Befehl rpm -ql php5-pear verwenden um alle Dateien einsehen zu können, die von SuSE für das Packet ‘php5-pear’ installiert wurden.

    Es fällt die Datei /usr/bin/pear5 auf. Das Konfigurationsprogramm wurde anscheinend ab der PHP Version 5 in ‘pear5′ umbennant!

    Man verwendet also zur Konfiguration und Einbindung von PEAR-Paketen den pear oder pear5 Befehl.

    Wenn man alles richtig gemacht hat, kann man nun die PEAR-Pakete einfach per include() in die PHP-Dateien einfügen. Sollte aber noch ein Fehler ala:

    failed to open stream: No such file or directory

    auftreten, so liegt das daran, dass das Verzeichnis in welchem PEAR die eingebundenen PEAR-Pakete (also die PHP-Dateien) nicht im Suchverzeichnis der PHP-Installation liegen oder man den Safe-Mode aktiviert hat (Den pear5 Befehl aber als anderer Benutzer als der Benutzer des Webservers ausgeführt hat). Abhilfe schafft man am einfachsten indem man die php.ini öffnet und den Suchpfad anpasst.

    Kurze Schritt für Schritt Anleitung für Anfänger für Apache Benutzer:
    1. php.ini Datei mit dem Befehl: find / -name “php.ini” im gesamten Dateisystem suchen.
    2. Die gefundene php.ini Datei mit einem beliebigen Texteditor öffnen , je nach Verzeichnis sieht das so aus: vi /etc/php5/apache2/php.ini oder für Windowsuser: Einfach mit WinSCP öffnen.
    3. Die Zeile mit “safe_mode_include_dir” muss man wie folgt ergänzen: safe_mode_include_dir = “.:/usr/share/php5:/usr/share/php5/PEAR”
    4. Die Zeile mit “include_path” muss ebenfalls überprüft werden, ob die Pfade richtig angegeben wurden
    5. Damit die Änderungen wirksam werden: Mit “httpd2 -k restart” den Apache 2 neu starten

    Es empfielt sich vorher eine Sicherungskopie der php.ini anzulegen!

    Thema: Entwicklung | Kommentare (0)

    Freie PDF-Bibliothek für Java

    Tuesday, 20. May 2008 18:45

    Um Informationen aus PDF-Dateien zu extrahieren, PDF-Dateien mittels Java zu erstellen oder um unter Java drucken zu können eignet sich die mächtige Bibliothek PDFBox.

    Nach dieser Anleitung lässt sie sich recht leicht verwenden:
    1. Man läd sich die aktuelle Version bei Sourceforge herunter (in diesem Beispiel wurde die 0.73er verwendet):

    Kommandozeilen Programme finden
    2a. Im Ordner bin befinden sich Kommandozeilen-Programme mit denen man pdf Dateien verschlüsseln, entschlüsseln, die Bilder oder den Text aus der PDF-Datei extrahieren kann. Wer keine Java Programmierkenntnisse hat kann die fertigen Programme einfach über die Kommandozeile ausführen. Zuvor muss das Archiv natürlich entpackt werden. Mehr Informationen dazu findet man auf der PDFBox Webseite unter Command Line Utilities.

    Die Einbindung der Bibliothek in Java Eclipse Projekte (Beispielhaft für Windows)
    2b. Wer die Bibliotheken benötigt um eigene Software zu schreiben, extrahiert aus dem heruntergeladene ZIP-Archiv einfach die .jar-Datei aus dem lib Verzeichnis. Diese Datei kann man nun zum Beispiel in das Plugin-Verzeichnis von Eclipse kopieren.

    3b. In Eclipse erstellen wir ein neues Projekt und geben in den “Projekt Java Settings” unter dem Reiter “Jars” (am einfachsten gelangt man bei bereits bestehenden Projekten dahin, wenn man das Projekt im Baum anklickt und auf Properties->Java-Build-Path->Libraries klickt) mithilfe des Buttons “Add-External-Jars” suchen wir die Jar-Datei im Eclipse/Plugin Verzeichnis und fügen sie der Liste hinzu (hätten wir die .jar Datei ins Projektverzeichnis kopiert kann man auch mit “Add Jars” arbeiten).

    4b. Wir legen eine Klasse zum Testen an. Wer mag kann hier ein fertiges Beispiel aus dem heruntergeladenem ZIP-Archiv verwenden. Die Beispiele befinden sich im Ordner /src/examples/

    Meistens findet man bereits ein Beispiel was recht gut zu dem passt was man vor hat. Bei den Beispielen sollte man aber nicht vergessen, den Namen der zu bearbeitenden PDF Datei als Übergabeparameter an die Klasse zu übergeben ;).

    Thema: Administration, Entwicklung | Kommentare (3)

    Bilder massenhaft verkleinern unter Windows

    Sunday, 18. May 2008 22:02

    Für Linux sind Vielen unter uns die Befehle convert der Imagemagick Bibliothek bekannt. Damit kann man einfach per Kommandozeile Bilder beliebig verkleinern, komprimieren oder umbenennen. Aber was macht man, wenn man gerade keine Linux Distribution am laufen hat?

    Die Lösung ist einfach, denn Imagemagick gibt es auch als Windows Version. Am besten läd man sich also hier die windows-static.exe herunter. Zur Installation folgt man den komfortablen Assistenten und behält die Standardeinstellungen bei.

    Mit dem Befehl
    convert -quality 80 -resize 50% C:\Bilderverzeichnis\*.jpg c:\NeuesBilderverzeichnis\bild.jpg kann man dann einfach die Qualität zum Beispiel auf 80 und die Bildgröße auf 50% setzen. Schon sind riesige Bilder die zum Beispiel frisch vom Fotoapparat stammen schön handlich.

    Mehr mögliche Befehle endeckt man mit
    convert -h

    Thema: Allgemein | Kommentare (0)

    blogoscoop
    Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien: