MODDING-FAQ FORUM

Hardware & Software => Software => Thema gestartet von: mak am November 13, 2009, 22:23:25



Titel: RegEx gesucht
Beitrag von: mak am November 13, 2009, 22:23:25
Liebe Community, ich suche einen RegEx-Spezialisten, der mir eine RewriteRule für ein htaccess-File schreibt. Problem an der ganzen Sache: Es wird wohl komplizierter, als dass das normale Generatoren im Web schaffen.

Ich will URLs wir folgt umwandeln:

Code:
http://meinedomain/basisordner/abc/            => http://meinedomain/basisordner/?param1=abc
http://meinedomain/basisordner/abc/def/      => http://meinedomain/basisordner/?param1=abc&param2=def
http://meinedomain/basisordner/abc/def/ghi/ => http://meinedomain/basisordner/?param1=abc&param2=def&param3=ghi
usw...

Folgende RewriteRules hab ich schon:
Code:
RewriteRule ^([^/]*)/$                       /basisordner/?param1=$1 [L]
RewriteRule ^([^/]*)/([^/]*)/$            /basisordner/?param1=$1&param2=$2 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ /basisordner/?param1=$1&param2=$2&param3=$3 [L]

Jetzt soll das aber verallgemeinert werden, sodass beliebig lange URLs nach diesem Schema verarbeitet werden.

Dazu habe ich noch eine Verständnisfrage:
Ich vermute dass folgende RewriteRules äquivalent sind, stimmt das?
Code:
RewriteRule ^([^/]*)/$ basisordner/?param1=$1 [L]
RewriteRule ^([/$]*)$   basisordner/?param1=$1 [L]
RewriteRule [/$]*         basisordner/?param1=$1 [L]

Grüsse, M/A/K

PS: Das htaccess-File befindet sich im Basisordner.


Titel: Re: RegEx gesucht
Beitrag von: Modshark am November 13, 2009, 22:29:45
Code:
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?request=$1 [QSA,L,NC]

Dadurch landet alles hinter deiner Domain in der Variable $_GET["request"]. Diese kannst du dann innerhalb der index.php in einen Array umwandeln und weiterverarbeiten:

Code:
$request = explode("/", $_GET["request"]);

Param1 ist dann also $request
  • usw...

    MfG
    Modshark


  • Titel: Re: RegEx gesucht
    Beitrag von: mak am November 13, 2009, 22:54:59
    Es funktioniert soweit, ausser wenn ich einen existierenden Ordner angebe. Wie kann ich das beheben?

    Kannst du mir auch noch erklären, was das QSA, L und NC bedeutet?


    Titel: Re: RegEx gesucht
    Beitrag von: Modshark am November 13, 2009, 23:04:29
    Also die RewriteRule Flags findest du hier: http://de.selfhtml.org/servercgi/server/rewrite.htm#rewriterule

    Mit einem Unterordner hatte ich auch schoneinmal Probleme... weiß nicht, ob ich die alten Versuche von damals noch habe. Müsste ich morgen nochmal schauen.

    MfG
    Modshark


    Titel: Re: RegEx gesucht
    Beitrag von: mak am November 14, 2009, 00:21:46
    Nach ein wenig Herumprobieren bin ich nun auf folgende Lösung gekommen:

    Code:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^(.+/)$ cms/?path=$1 [QSA,L,NC]
    RewriteCond %{REQUEST_FILENAME} !-s # Allow existing files
    RewriteRule ^(.+)$ cms/$1/ [R] # Append a trailing /

    Verwendet wird das Ganze für ein einfaches CMS-System, das ich fortan für meine Website einsetzen will, um die Administration so einfach und flexibel wie möglich zu machen. Erste Fortschritte kann man hier (http://www.mak89.ch/cms/) mitverfolgen.


    Titel: Re: RegEx gesucht
    Beitrag von: Falzo am November 14, 2009, 09:01:41
    ich weiss ja nicht, was du fuer deinen homeserver als OS einsetzt, rate aber generell bei der entwicklung von scripten dies in einer typischen webspace-umgebung zu tun, falls es nicht nur fuer deine eigenen zwecke gedacht ist, sondern später mal verbreitung finden soll oder zumindest produktiv eingesetzt werden soll :-)

    'zu hause' ist man bei der entwicklung schnell versucht allerlei spezialitäten in der server-config umzustellen, bis das eigene script laeuft. will man es dann später mal produktiv auf einem webspace-paket oder vserver einsetzen, hapert es dann allen ecken und enden...

    ( bei bedarf an einer brauchbaren spielwiese fuer kleines geld wendest du dich natürlich vertrauensvoll an mich  ;D )


    Titel: Re: RegEx gesucht
    Beitrag von: mak am November 14, 2009, 10:49:44
    Da hast du natürlich Recht, doch ich musste noch gar nichts umstellen an meinem Server und versuche das natürlich so weit wie möglich zu umgehen. Wie aber schon erwähnt, soll das schlussendlich ein einfaches CMS-System ergeben, ich will selbst nichts Hochstehendes zusammenbasteln. ;) Verwendung für mich und für andere.

    Im Zweifelsfalle hab ich ich Zugriff auf den Hoster, der mir die Umleitung von der .ch Domain auf die DynDNS Domain erledigt. Bin da Trittbrettfahrer bei der Website, deren Admin ich bin. ^^ (Wer findet die Adresse der Website raus? :))

    Als OS läuft bei mir ein XP (Performance Edition, falls dir das was sagt ;)) und als Webserver ein WAMP.


    © 2001-2022 MODDING-FAQ FORUM | SMF
    Alle Rechte vorbehalten.