Mod-Rewrite Funktionstest

mod_rewrite will manchmal nicht das tun was ich von ihm verlange. Manchmal habe ich auch eine mir unverständliche .htaccess Datei mit mod_rewrite Regeln die ich beim besten willen nicht nachvollziehen kann und auch wieder einfach nicht das tun was die READ.ME oder der Eigentümer der Datei behauptet.

Um in einer solchen Situation feststellen zu können ob das mod_rewrite auf dem Webserver funktionsfähig ist muss ich das irgendwie testen können.

Um einen solchen Test durchzuführen benötige ich drei  Dateien.
Eine .htaccess Datei und zwei HTML Dateien.
Wenn ich dann versuche nach dem Anlegen der Dateien diese aufzurufen.

Meine .htaccess Datei erhält den folgenden Inhalt:

In der ersten Zeile starte ich, so vorghanden, das mod_rewrite, so das die beiden folgenden Zeilen, RewriteBase und RewriteRule, für den Apache eine Bedeutung erhalten. In der Zweiten Zeile lege ich die Basis der Umschreibe Regel fest. In der finalen dritten Zeile der .htaccess-Datei lege ich fest das alle Aufrufe welche die Datei testing.php erreichen sollen anstelle dieser die Datei modrewrite.php erreichen.
Wenn diese Regeln greifen ist es durch diese nicht möglich den Inhalt von „testing.php“ zu erhalten.

Meine beiden PHP Dateien erhalten den folgenden Inhalt:
modrewrite.php

testing.php

Nach dem Anlegen der Dateien kann im Browser versucht werden die Internetseite http://domain.tld/testing.php auszurufen. Nur wenn im Browser der Text „mod_rewrite und PHP X.Y sind OK“ erscheint funktioniert mod_rewrite. Wenn etwas anderes angezeigt wird, „mod_rewrite ist nicht funktionsfaehig“, „echo „mod_rewrite ist nicht funktionsfaehig“;“ oder sogar „Fehler 500: Internal Server Error“, ist der Webserver nicht entsprechend eingerichtet und mod_rewrite kann leider nicht genutzt werden.

Scan to Donate Bitcoin to der_metzger
Did you like this?
Tip der_metzger with Bitcoin

HTTP Protokoll Grundlagen für Anfänger

Wie funktioniert das Internet-Protokoll HTTP?

Ganz einfach: der Client (Webbrowser) sendet eine Anfrage (GET), das Protokoll über das angefragt wird und zwei leerzeilen. Anschließend bekommt der Browser vom Server die Seite ausgeliefert:

als Browser

Auf der Linux-Shell kann eine solche Abfrage mittels Netcat (nc) und echo nachgebildet werden:

Die Anfrage „GET / HTTP/1.1“, die Mitteilung zu welcher Domain die Anfrage gehört (host:) und zwei Zeilenumbrüche (\r\n) werden mittels Netcat an Port 80 des Servers www.heise.de gesandt.

als Server

Auch ein HTTP-Server lässt sich auf der Linux Schell auf die gleiche weise „simulieren“:

Beim Aufruf der Seite in einem Browser erscheint der Text „Linux, da bin ich“ und auf der Shell erfolgt die Ausgabe des Anfrage Headers.
Der Aufruf der Seite im Firefox

GET / HTTP/1.1
Host: 85.214.55.47:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

Alternativ kann der Abruf der Seite auch über den Vorangegangenen Befehl erfolgen. Die Anfrage wird von Netcat jedoch nicht geprüft, so das Du bei der Anfrage auch beliebige Zeichen in die Abfrage schreiben kannst.:

Allerdings ist der Aufruf der „Seite“ auf diese Weise nur ein einziges mal möglich!

Um einen wiederholten Abruf zu ermöglichen kannst Du das Netcat in eine Endlosschleife legen.:

 

Scan to Donate Bitcoin to der_metzger
Did you like this?
Tip der_metzger with Bitcoin

Wie finde ich heraus ob mein Webserver die Seiten gzip komprimiert ausliefert…

Am Beispiel des Heise Servers holem wir zuerst die Daten via wget.

jetzt schauen wir, ob die geholte index Datei gzip komprimiert ist:

ok… das sieht nicht nach sinollem Text aus, könnte GZIP sein…
um dies zu prüfen entpacke ich die Datei mittels gzip:

und prüfen ob der Inhalt der Erwarteten HTML Datei entspricht.

Das ist der vollständigste Weg zu prüfen ob eine Seite von Webserver gzip koprimiert ausgeliefert wird.😉

Scan to Donate Bitcoin to der_metzger
Did you like this?
Tip der_metzger with Bitcoin