mod_rewrite: weiterleitung auf ordner deaktivieren, wie ?

Silas6473

New Member
hallo, habe diese htaccess :

Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule ^\.htaccess$ - [F]
Options +FollowSymlinks
RewriteRule ^([^/^\.]+)$ /index.php?id=$1 [QSA]
RewriteRule ^(.+)/([^/]+)$ /$1?action=$2 [QSA]

doch trotz Zeile 2 und 3 kann ich nicht in existierende Ordner, erhalte eine Meldung dass ich zu oft weitergeleitet wurde, sieht man auch am link... somit werden auch die css und so weiter nicht in der index gentuzt. was ist da falsch und wie ist es richtig ?
 
Dir ist ist klar, dass
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
keine Wirkung auf
Code:
RewriteRule ^([^/^\.]+)$ /index.php?id=$1 [QSA]
RewriteRule ^(.+)/([^/]+)$ /$1?action=$2 [QSA]
hat?

--
.A.
 
Die Reihenfolge der Konfigzeilen ist wichtig, denn Apache arbeitet die Config strikt von Oben nach Unten ab, wobei immer nur der erste Treffer zählt (nicht der Letzte!).

Code:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/^\.]+)$ /index.php?id=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([^/]+)$ /$1?action=$2 [QSA,L]
 
ah danke. jetzt werden die css, etc. beim 1. Parameter angezeigt, sobald das 2. in der URL ist fehlt das css aber wieder, wieso ? :/
 
Ohne echte Beispiele oder besser gleich einen URL können wir nicht mehr helfen.

Hellsehen funktioniert nur mit klaren Glaskugeln, meine ist aktuell leider beschlagen...
 
hier kurz aufgebaut, da sieht man es gut : hier geht es :

Code:
https://sarius87.lima-city.de/42

und hier fehlt das css dann :

Code:
https://sarius87.lima-city.de/42/send
 
Dann willst Du also eher das:
Code:
RewriteRule ^(.+)/([^/]+)$ /index.php?id=$1&action=$2 [QSA,L]
 
naja, damit MUSS es aber den 2. parameter geben. der ist aber nur optional. und aber auch damit ist das Problem noch :/

Code:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([^/]+)$ /index.php?id=$1&action=$2 [QSA,L]

man soll /42 aufrufen können und aber auch /42/send

wie muss das dann aussehen ? :D
 
Last edited by a moderator:
Code:
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /index.php?id=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([^/]+)$ /index.php?id=$1&action=$2 [QSA,L]
Die RegExp kann man ggf. auch in eine RewriteRule zusammenfassen, vorher sollte es aber erst mal funktionieren.
Was bedeutet, dass beim 2. Parameter das css fehlt?
--
.A.
 
Back
Top