Hi Martin,
cool. So wird mir alles etwas verständlich.
ob man das mod_rewrite-Modul des Apachen so kurz erklären kann ...
Ich kann aber erklären, wie ich es nutze. :-)
Ich habe folgende Konfiguration in einer .htaccess-Datei:
Einmal für Apache mod_rewrite installiert, kann man in einer .htaccess-Datei die Konfiguration vornehmen, welches wahrscheinlich in httpdocs liegt, bzw. da wo die index.php liegt. (Bei mir wäre es main.jsp, welche im Tomcat liegt)
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Bis hier her ist es relativ verständlich.
> ` RewriteRule ^(.*) index.php?page=$1 [QSA,L]`{:.language-apache}
Hier muss ich lernen :-)
^(.\*)
Regulärer Ausdruck?
^ würde bedeuten: "alles was nicht"
Wie auch immer. Das heißt, dass der Platzhalter $1, der für den Parameter "page" übergeben würde, dann die URL ist.
www.domain.tld/index.php?page=fotogalerie
-> www.domain.tld/fotogalerie
> Das heißt: Die Rewrite-Engine wird erstmal überhaupt eingeschaltet, dann wird festgelegt, dass URLs sich immer auf / beziehen sollen. Bedingungen für das Umschreiben der URL sind, dass der Original-Request NICHT auf eine existierende Datei und NICHT auf ein existierendes Verzeichnis geht. Dann wird, wie schon erwähnt, alles in der Form
> /<path>
> auf
> index.php?page=<path>
> umgeschrieben. Eventuelle URL-Parameter aus dem Original-Request werden zusätzlich wieder mit angehängt (QSA).
>
> Da ich außerdem noch meine Include-Dateien im gleichen Verzeichnis ablage, ergänze ich noch:
>
> ~~~apache
<Files ~ "\.inc$">
> Order allow,deny
> Deny from all
> </Files>
Dann kann niemand meine *.inc-Dateien per HTTP abrufen.
Ja, das ist gut. Das sollte ich auch in Erwägung ziehen.
Sollte da statt $ kein * Zeichen?
<Files ~ "\.inc*">
Order allow,deny
Deny from all
</Files>
Für index.php, sprich localhost würde die Sperre aber nicht gelten. Sosnt wär es ja dumm :-)
Grüße