mod_rewrite

lockdoc

Well-Known Member
Mal nen bissel off-topic, aber eventuell weiss Jemand Rat.

Derzeit sieht meine .htaccess wie folgt aus
Code:
php_flag magic_quotes_gpc Off

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$   www/    [L]
    RewriteRule    (.*) www/$1  [L]
</IfModule>

Also alle url calls werden in das Verzeichnis www/ geleitet worin sich eine index.php befindet.

Nun wuerde ich gerne eine Ausnahme definieren. Und zwar, falls folgender URL Aufruf kommt
Code:
/plugins/<plugin_name>/css/<css_name>.css

Soll dieser ins folgende Verzeichnis gehen
Code:
usr/plugins/<plugin_name>/www/css/<css_name>.css

wobei <plugin_name> und <css_name> nicht fix sind, sondern variabel.
Kann ich das irgendwie mit mod_rewrite machen?
 
Einfach mal geraten:

Code:
RewriteRule /plugins/(.[^/]+)/css/(.[^.]+).css usr/plugins/$1/www/css/$2.css [L]
 
Danke fuer die Antwort.

Ich habs jetzt erfolgreich wie folgt gemacht
Code:
php_flag magic_quotes_gpc Off

<IfModule mod_rewrite.c>
    RewriteEngine on

    # ---- redirect plugin's www folder if requested
    # http://domain.tld/plugins/<PluginFolder>/(css|js|img)/<file>.(css|js|gif|jpg|jpeg|png)
    # css
    RewriteRule ^plugins/([-A-z0-9]+)/css/([-A-z0-9]+)\.css usr/plugins/$1/www/css/$2\.css [L]
    # javascript
    RewriteRule ^plugins/([-A-z0-9]+)/js/([-A-z0-9]+)\.js usr/plugins/$1/www/img/$2\.js [L]
    # pictures
    RewriteRule ^plugins/([-A-z0-9]+)/img/([-A-z0-9]+)\.(gif|jpg|jpeg|png) usr/plugins/$1/www/img/$2\.$3 [L]

    # ---- if it is not a file or directory, move on to normal redirect
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    # redirect anything else to www/
    RewriteRule    (.*) www/$1 [L]
    RewriteRule    ^$   www/   [L]
</IfModule>

Ich musste allerdings die folgende Rewrite rules nach ganz unten schieben
Code:
RewriteRule    ^$   www/    [L]
und die Conditions hinzufuegen, da es sonst immer verhindert wurde, dass die Plugin Regel zieht.


Nochmal anbei ne Frage jetzt dazu:

Sieht da noch Jemand irgendwelche sicherheitsrelevanten Probleme? Es duerfen halt nur wirklich die css/js/bilder aus den jeweiligen Ordner aufgerufen werden, bei allen anderen requests auf Ordner oder nicht existierende Dateien, soll die letzte Regel immer ziehen, um in den www/ Ordner weiterzuleiten.

Edit:
Achso und weiss evtl. Jemand wie Performance-Intensiv so ein redirect ist. Es soll halt eigentlich so schnell wie moeglich die Seite aufgebaut werden, ohne bemerkenswerte Verzoegerungen.
 
Zurück
Oben