Hallo alle zusammen,
ich bin verzweifeln, denn ich habe alles versucht. Google war mein treuester Freund gestern abend und den kompletten Nachmittag am heutigen Tag. :-(
Problem: Ich moechte, dass
http://www.domain.tld/seite.html
in
http://www.domain.tld/index.php?page=seite
umschreiben lassen um suchmaschinenfreundliche URLs zu erhalten.
Dies klappt auch sehr gut, ich kann nicht klagen.
Nun sollen aber die noch existierenden ca. 10 Unterverzeichnisse ausgenommen werden. Beispielsweise das Unterverzeichnis "gfx" oder "tmp". Im ersteren Verzeichnis liegen beispielsweise Bilder ohne jegliche Index-Files. Beim Zugriff auf dieses Verzeichnis ohne Dateiangabe soll einfach wie bisher eine Fehlermeldung erscheinen (Indexes ist deaktiviert).
Leider klappt eben dies nicht, da auch hier die index.php aus dem Hauptverzeichnis geladen wird. Witzigerweise gibt es da auch unterschiedliches Verhalten. Im Webalizer-Dir, wo eine index.html existiert, wird diese auch teilweise geladen anstatt der index.php im Hauptverzeichnis.
Hier die Regeln, die ich in den VHost in der httpd.conf eingebaut habe:
Dies ist die Regel, die an sich wie gewuenscht laeuft (leider eben auch in beliebigen Unterverzeichnissen):
RewriteRule ^/?(.*).html$ /index.php?page=$1 [L]
Davor habe ich schon diverse Regeln eingebaut (immer nur eine Regel gleichzeitig), hier einige Beispiele:
RewriteRule !^(.*)gfx(.*)$ - [C]
RewriteCond {REQUEST_URI} !^gfx/$ [NC]
RewriteCond {REQUEST_FILENAME} !^gfx/$ [NC]
RewriteCond %1 !(/gfx/|/tmp/)
RewriteCond %1 !.*/gfx/.*
RewriteRule ^/?(.*)gfx.* - [L]
Bin ratlos und hoffe auf etwas Rewrite-DAU-Hilfe von Euch... ;-)
Vielen Dank,
Roi
Verzeichnisse ausnehmen bei rewrite-Regeln
Re: Verzeichnisse ausnehmen bei rewrite-Regeln
Code: Select all
RewriteRule ^/(.*).html$ /index.php?page=$1 [L]PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: Verzeichnisse ausnehmen bei rewrite-Regeln
Danke erst einmal fuer die Turboantwort! :-)Joe User wrote:Code: Select all
RewriteRule ^/(.*).html$ /index.php?page=$1 [L]
Ich sehe, dass das ? fehlt, die Regel ansonsten identisch ist mit der, die ich bisher eingesetzt habe.
Hab das eben mal getestet, leider erfolglos. Funktioniert immer noch nicht. Das ist schon als die einzige Regel gedacht, oder?
Re: Verzeichnisse ausnehmen bei rewrite-Regeln
Juchu ich habs (mit freundlicher Hilfe) nun doch hinbekommen! *freu*
Hier die Loesung fuer mein Problem, vielleicht freut sich ja der ein oder andere, der hier in Zukunft mal nach nem aehnlichen Problem sucht.
An sich ist's ja ganz einfach, man muss nur drauf kommen. An sich reicht naemlich eine einzige Regel, die nur matched, wenn es kein Unterverzeichnis gibt. Sprich auf a-z, A-Z, 0-9, - und _. Sobald also ein / dabei ist (und natuerlich alle anderen nicht aufgefuehrten Zeichen), macht die Regel nichts. Fuer mich genau das richtige.
Hier die Loesung fuer mein Problem, vielleicht freut sich ja der ein oder andere, der hier in Zukunft mal nach nem aehnlichen Problem sucht.
An sich ist's ja ganz einfach, man muss nur drauf kommen. An sich reicht naemlich eine einzige Regel, die nur matched, wenn es kein Unterverzeichnis gibt. Sprich auf a-z, A-Z, 0-9, - und _. Sobald also ein / dabei ist (und natuerlich alle anderen nicht aufgefuehrten Zeichen), macht die Regel nichts. Fuer mich genau das richtige.
Code: Select all
RewriteRule ^/([a-zA-Z0-9_-]+).html$ /index.php?page=$1 [L]