Hallo LUG,
heute habe ich mal was für die Apache2-mod_rewrite-Kenner unter euch.
Gegeben ist folgende Ordnerstruktur:
ordner1 ordner1/file1.php ordner2 ordner2/file2.php ordner3 ordner3/sonstigesfile.php index.php
Dies sind immer die Basispfade, also ein Aufruf von http://localhost/ ruft die index.php auf, http://localhost/ordner1/ zeigt die file1.php an.
Nun sollen alle Anfragen die an http://localhost/ordner1/ gehen, automatisch an die Datei file1.php gerichtet werden. Genauso bei http://localhost/ordner2 an file2.php. Anfragen an http://localhost/ordner3/ sollen hingegen nicht an sonstigesfile.php weitergeleitet werden.
Meine Konstruktion sieht nun wie folgt aus:
.htaccess RewriteEngine on RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^![rfp](.*)$ index.php/$1 [L]
ordner1/.htaccess RewriteEngine on RewriteBase /ordner1/ RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ file1.php/$1 [L]
ordner1/.htaccess RewriteEngine on RewriteBase /ordner2/ RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ file2.php/$1 [L]
Gibt es einen besseren Weg, diese Regeln in nur eine .htaccess-Datei zu packen?
Oder als Alternative:
Anfragen an /(.*) -> /index.php/$1 Anfragen an /ordner1/(.*) -> /file1.php/$1 Anfragen an /ordner2/(.*) -> /file2.php/$1
also ohne die Ordner ordner1 und ordner2.
Ich habe schon einiges gegoogelt und experimentiert, doch die oben genannte Möglichkeit war die einzige, die ich hinbekommen habe. Diese ganze URL-Manipulation kann ich auch nur mit .htaccess-Dateien machen, da ich an die httpd.conf nicht ran komme bzw. möchte.
Vielen Dank,
Falk Döring