mod_rewrite mit variabler Struktur

Sebigf

Erfahrenes Mitglied
Hallo zusammen,

ich habe im Moment dass Problem, dass ich viele variable Werte in meinen URLs habe.
Ich hatte vor, dass ganze nut mit einem Slash "/" zu handelt.

Aber wie mache ich es am besten, dass nicht // oder sogar ///// in der URL steht, weil es keine Werte gibt ?!

Danke
 
Du müsstest jeden zusätzlichen Teil als optional auszeichnen, etwa:
Code:
RewriteRule	^([^/.]+)/(?:([^/.]+)/)?$	/foo?bar=$1&baz=$2	[L]
Alternativ kannst du auch für jede Möglichkeit eine eigene Regel aufstellen, etwa:
Code:
RewriteRule	^([^/.]+)/([^/.]+)/$	/foo?bar=$1&baz=$2	[L]
RewriteRule	^([^/.]+)/$		/foo?bar=$1		[L]
 
Danke Gumbo für die Antwort :)

Es hat direkt funktioniert !

Ich habe nun nur ein Problem...

Ich habe einen css style im Ordner "./styles/style.css" abgelegt.
Dieser wird nun, anscheinend wegen der Rewrite-Rebel, nicht mehr berücksichtigt, und die Page wird "ohne" CSS wiedergegeben.

Hast du da eine Idee, um für die CSS Datei eine Ausnahme zu machen ?

Danke :)
 
Setze mal zusäzulich folgende Bedingungen für die Regeln ein:
Code:
RewriteCond	%{REQUEST_FILENAME}	!-d
RewriteCond	%{REQUEST_FILENAME}	!-f
Damit werden existente Verzeichnisse und Dateien von der Umschreibung ausgeschlossen.
 
Danke für den Code, aber es ändert sich nichts.

Hier mein gesamter Code

Code:
RewriteCond    %{REQUEST_FILENAME}    !-d
 RewriteCond    %{REQUEST_FILENAME}    !-f
 RewriteRule    ^([^/.]+)/(?:([^/.]+)/)?$ /index.php?site=$1&show=$2&id=$3&entry=$4&style=$5&language=$6&filter=$7&session=$8&message=$9    [L]
 
Habe ich noch vergessen zu sagen...

Ich hatte

Code:
 RewriteBase /

auch einmal darin. Aber auch wenn es raus ist, tut sich nichts.
 
Jede Backreference benötigt ein Subpattern:
Code:
RewriteEngine	on
RewriteCond	%{REQUEST_FILENAME}	!-d
RewriteCond	%{REQUEST_FILENAME}	!-f
RewriteRule	^([^/.]+)/(?:([^/.]+)/)?(?:([^/.]+)/)?(?:([^/.]+)/)?(?:([^/.]+)/)?(?:([^/.]+)/)?(?:([^/.]+)/)?(?:([^/.]+)/)?(?:([^/.]+)/)?$	/index.php?site=$1&show=$2&id=$3&entry=$4&style=$5&language=$6&filter=$7&session=$8&message=$9	[L]
 
mmh, geht leider immer noch nicht :(

Kann es vielleicht am CSS Tag im Header liegen ?

Code:
<link title="Style" media="screen" type="text/css" href="./styles/style_4.css" rel="stylesheet"/>
 
Zurück