Zur Navigation

Url umwandeln für CMS

1 Pion (Gast)

heyho,

du/das Forum wurde mit empfohlen, das möchte ich gleich mal testen ;)

Ich habe folgendes Problem:

Ich will aus

/module/guestebuch => ?content=guestebuch
/seiten/test => ?content=seite_test

machen, soweit hab ich das auch nur möchte ich nun noch weitere parameter umwandeln, dh alle weiteren '/' sollen zu '&' und alle weiteren '-' zu '='


Sprich aus /modul/guestebuch/showtest-1/

Soll

?content=guestebuch&showtest=


Bisher habe ich also :


RewriteEngine on
RewriteBase /
RewriteRule ^modul/([^/]+)/{0,1}$ ?content=$1
RewriteRule ^seite/([^/]+)/{0,1}$ ?content=seite_$1

12.10.2009 22:02

2 Jörg Kruse

Auf welche Datei soll denn rewritet werden? "?content=$1" ist ja nur der Query String. Wenn das Script index.php heißt, sollten die Rules beispielsweise so ausschauen:

RewriteRule ^module/([^/]+)/?$ index.php?content=$1
RewriteRule ^seite/([^/]+)/?$ index.php?content=seite_$1

Für "{0,1}" kannst du hierbei auch einfach "?" verwenden.

Für "/modul/guestebuch/showtest-1/" könntest du es dann vielleicht mit so einer Rule probieren:

RewriteRule ^module/([^/]+)/([^/]+)-([0-9]+)/$ index.php?content=$1&$2=$3

13.10.2009 00:06 | geändert: 13.10.2009 00:06

3 Pion (Gast)

Schon mal danke für die antwort:)

Hab mal dein Code schnippsel hochgeladen:


RewriteEngine on
RewriteBase /
RewriteRule ^module/([^/]+)/([^/]+)-([0-9]+)/$ index.php?content=$1&$2=$3
http://lynax.ly.funpic.de/ut/module/guestebuch

Da geht leider noch nix:

1. würde der da nur 3 Parameter machen?

2. naja geht leider noch nicht:)


mfg

13.10.2009 06:48

4 Jörg Kruse

Die ersten beiden Rules fehlen, die benötigst du weiterhin:

RewriteEngine on
RewriteBase /ut/
RewriteRule ^module/([^/]+)/?$ index.php?content=$1
RewriteRule ^seite/([^/]+)/?$ index.php?content=seite_$1
RewriteRule ^module/([^/]+)/([^/]+)-([0-9]+)/$ index.php?content=$1&$2=$3

... und wenn du noch längere URLs umschreiben möchtest, musst du nach diesem Muster (eine) weitere Rule(s) hinzufügen

http://lynax.ly.funpic.de/ut/module/guestebuch

Dieser URL zufolge muss die RewriteBase "/ut/" lauten und nicht "/"

13.10.2009 08:18 | geändert: 13.10.2009 08:22

5 Pion (Gast)

Hey viel dank,

ich weis nicht wieviele parameter die modulschreiber nehmen, soll ich dann zb sowas machen?

RewriteRule ^module/([^/]+)/([^/]+)-([0-9]+)/$ index.php?content=$1&$2=$3
RewriteRule ^module/([^/]+)/([^/]+)-([0-9]+)//([^/]+)-([0-9]+)/$ index.php?content=$1&$2=$3&$4=$5
RewriteRule ^module/([^/]+)/([^/]+)-([0-9]+)//([^/]+)-([0-9]+)//([^/]+)-([0-9]+)/$ index.php?content=$1&$2=$3&$4=$5&$6=$7


13.10.2009 14:35

6 Pion (Gast)

Jetzt hab ich aber ein großes Problem mti den Verlinkungen, in dem Design zb sind ja statische Links sprich /design/das design.css, das stimmt aber nun nicht mehr da es ja ../../design/das design.css lauten muss dh bei jeden statischen link auch im modul

13.10.2009 15:04

7 Jörg Kruse

ich weis nicht wieviele parameter die modulschreiber nehmen, soll ich dann zb sowas machen?

RewriteRule ^module/([^/]+)/([^/]+)-([0-9]+)/$ index.php?content=$1&$2=$3
RewriteRule ^module/([^/]+)/([^/]+)-([0-9]+)//([^/]+)-([0-9]+)/$ index.php?content=$1&$2=$3&$4=$5
RewriteRule ^module/([^/]+)/([^/]+)-([0-9]+)//([^/]+)-([0-9]+)//([^/]+)-([0-9]+)/$ index.php?content=$1&$2=$3&$4=$5&$6=$7

Ja, das könntest du so machen. Dir stehen bei Modrewrite auch nur maximal 9 Parameter zur Verfügung, also $1 bis $9

Jetzt hab ich aber ein großes Problem mti den Verlinkungen, in dem Design zb sind ja statische Links sprich /design/das design.css, das stimmt aber nun nicht mehr da es ja ../../design/das design.css lauten muss dh bei jeden statischen link auch im modul

Ja klar, wenn du "/" als Trenner nimmst, musst du natürlich auch relative Pfade anpassen ;). Du kannst ja absolute Pfade verwenden (die sich auf den Root der Website beziehen), oder einen anderen Trenner einsetzen

13.10.2009 15:10

8 Pion (Gast)

Ne also das ist schlecht dann leider mit den / :(

Weil wenn jemand nun ein Design schreibt für das CMS dann weis er ja nicht die Server adresse


mfg

13.10.2009 15:16

9 Pion (Gast)

Was für möglichkeiten gibts da noch?

lynax.ly.funpic.de/ut/modul-download-test-1-2tervaar-2.html
Ist das schön ;) Gehts schöner ? ;)

13.10.2009 15:46

10 Jörg Kruse

Naja, in Bezug auf Schönheit bzw. Usability gewinnt bei mir das "/" als zweites Trennzeichen. Bei deinem Beispiel lassen sich die Parameterpaare gar nicht mehr unterscheiden - das stellt nur noch eine unstrukturierte Kette von Strings und Zahlen dar. Manche setzen auch das Komma als zweites Trennzeichen ein, da dies auch von Google als Trennzeichen erkannt wird. Das ist wohl nicht so "schön" (worüber sich aber auch streiten lässt), hat aber den Vorteil, dass man die Pfade von Bildern, CSS-Dateien etc. nicht anpassen muss

13.10.2009 16:24 | geändert: 13.10.2009 16:25