.htaccess / mod_rewrite Problem mit Unterverzeichnis

Chance

Member
Ich will meinem CMS eine Konfigurierbare GZIPed Variante meiner CSS und Ausgabe spendieren.
Dabei wird im Template ein Zusatz hinzugefügt, der den Link auf eine physikalisch nicht existente CSS Datei umschreibt.
Hier kommt dann mod_rewrite zum Einsatz. Auf dem localen Server klappt es, in dem ich einfach eine .htaccess mit ins Unterverzeichnis gestellt habe.
Dies fühert auf dem Webserver zu einem 500er Fehler...

Was Offline funktioniert in /styles
Code:
RewriteEngine on
RewriteRule ^css_gzip_(.*).css$ css.php?id=$1

Mein Gedanke, es mit in die Hauptdatei zu schieben, schlugen Fehl.

Code:
RewriteEngine on
RewriteRule ^/styles/css_gzip_(.*).css$ /styles/css.php?id=$1
liefert ein 404 Fehler.

Wo habe ich meinen Denkfehler... ?

Edit:
Acho, Link:
http://www.piacos.de/styles/css_gzip_12.css
 

rellek

relativ sensationell
Teammitglied
Gewollte Punkte müssen escaped werden.

Code:
RewriteEngine on
RewriteRule ^css_gzip_(.*)\.css$ css.php?id=$1

Je nach Server-Konfiguration kanns passieren, dass du noch eine RewriteBase definieren musst. Das wäre der relative Pfad zur Domain-Root. Also bei www.example.com/foobar/file.xyz wäre die RewriteBase dann /foobar.
 

Chance

Member
Also...
Das RewriteBase hat leider nichts gebracht... weder im Hauptverzeichnis, noch im Unterverzeichnis.
Am Escapen lag es auch nicht.
 

Chance

Member
Gibt es eine Alternative ?

Edit:

Code:
RewriteBase /styles
RewriteRule ^css_gzip_(.*)\.css$ css.php?set=css&id=$1

geht auch nicht...
 

Titus

Goldmember
im hauptverzeichnis die htaccess zu benutzen steht nicht zur verfügung?

einfach zu deiner sitemap htaccess im root

Code:
RewriteRule styles/css_gzip_([0-9]+)\.css$ /css.php?set=css&id=$1 [L]

und werkel nicht mit ".*", wenn du a) ein input brauchst, dann nimmt man ".+" und b) eigentlich nur zahlen aber keinen text brauchst, sonst könnte die Syntax irgendwelchen wirren schmarren zusammenübersetzten was dann zu kuriosen URLs führt
 

Chance

Member
Hatte ich schon ausprobiert... funktionierte auch nicht.
Irgendwie klappt es mit Unterverzeichnissen nicht.
Jetzt wird auf das Hauptverzeichnis verlinkt und nicht mehr in das Unterverzeichnis im ersten Teil.
 

Titus

Goldmember
ach du hast die Datei im unterverzeichnis? ist mir entgangen war aufs root fixiert, dann natürlich

Code:
RewriteRule styles/css_gzip_([0-9]+)\.css$ /styles/css.php?set=css&id=$1 [L]

du kannst den führenden / auch weglassen, könnte aber zu problemen führen wenn du noch dazu SeoURLs benutzt da manche Browser da zu tollen kreationen fähig sind, die sich dann im 404 Log finden
 
Oben