Willkommen Gast. Bitte einloggen oder registrieren.
April 20, 2025, 07:34:30
Übersicht Ungelesene Beiträge auflisten Hilfe Suche Spiele Mitgliederkarte Kalender Login Registrieren

Schnellsuche
+  MODDING-FAQ FORUM
|-+  Hardware & Software
| |-+  Software
| | |-+  RegEx gesucht
  « vorheriges nächstes »
0 Mitglieder und 0 Gäste betrachten dieses Thema.
Seiten: [1] nach unten Drucken
Autor Thema: RegEx gesucht  (Gelesen 8225 mal)
mak
Modder der Apokalypse

*

Karma: +3/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 1147


M/A/K


Profil anzeigen WWW
RegEx gesucht
« 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.
« Letzte Änderung: November 13, 2009, 22:26:06 von mak » Gespeichert

M/A/K hat gesprochen!
Athlon X2 6400 + Xigmatek Achilles / 2x 2 GB RAM / 64 GB SSD / ATI 5850 / C433 / Windows-Rating: 6.3
Modshark
Global Moderator

*

Karma: +11/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 838


Spammen gefährdet Ihre Postings.


Profil anzeigen
Re: RegEx gesucht
« Antwort #1 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[0] usw...

MfG
Modshark
Gespeichert

   
mak
Modder der Apokalypse

*

Karma: +3/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 1147


M/A/K


Profil anzeigen WWW
Re: RegEx gesucht
« Antwort #2 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?
Gespeichert

M/A/K hat gesprochen!
Athlon X2 6400 + Xigmatek Achilles / 2x 2 GB RAM / 64 GB SSD / ATI 5850 / C433 / Windows-Rating: 6.3
Modshark
Global Moderator

*

Karma: +11/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 838


Spammen gefährdet Ihre Postings.


Profil anzeigen
Re: RegEx gesucht
« Antwort #3 am: November 13, 2009, 23:04:29 »

Also die RewriteRule Flags findest du hier: http://de.selfhtml.org/serverc...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
Gespeichert

   
mak
Modder der Apokalypse

*

Karma: +3/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 1147


M/A/K


Profil anzeigen WWW
Re: RegEx gesucht
« Antwort #4 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 mitverfolgen.
« Letzte Änderung: November 14, 2009, 00:46:41 von mak » Gespeichert

M/A/K hat gesprochen!
Athlon X2 6400 + Xigmatek Achilles / 2x 2 GB RAM / 64 GB SSD / ATI 5850 / C433 / Windows-Rating: 6.3
Falzo
Diktator vom Dienst
Administrator

*

Karma: +15/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 5088



Profil anzeigen WWW
Re: RegEx gesucht
« Antwort #5 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  Grin )
Gespeichert

...bis einer heult!
find virtual reality related boards at https://vrforum.de
mak
Modder der Apokalypse

*

Karma: +3/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 1147


M/A/K


Profil anzeigen WWW
Re: RegEx gesucht
« Antwort #6 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. Wink 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? Smiley)

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

M/A/K hat gesprochen!
Athlon X2 6400 + Xigmatek Achilles / 2x 2 GB RAM / 64 GB SSD / ATI 5850 / C433 / Windows-Rating: 6.3
Seiten: [1] nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Einloggen mit Benutzername, Passwort und Sitzungslänge      

Powered by MySQL Powered by PHP
eXTReMe Tracker
Seite erstellt in 0.015 Sekunden mit 17 Zugriffen.
© 2001-2022 MODDING-FAQ FORUM | SMF
Alle Rechte vorbehalten.
Prüfe XHTML 1.0! Prüfe CSS!