Was mache ich falsch?

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

Was mache ich falsch?

Beitragvon VanRay » 31.01.2009 10:25

hallo leute!

bin neu in dem thema und muss leider zeimlich schnell eine lösung finden...

das funktioniert wie es soll:
Code: Alles auswählen
RewriteRule ^([A-Za-z0-9-_]+)$ index.php?m=$1 [L]


das aber nich:
Code: Alles auswählen
RewriteRule ^(.*)$ index.php?m=$1 [L]


wieso?

auf einer website habe ich das als lösung gefunden, wenn man auch leerzeichen umwandeln will, aber es funzt einfach nicht! :(
kann mich da jemand aufklären?

im grunde muss ich nämlich sowas hier umwandeln, damit ich das schön per url ansprechen kann: "events/Köln/26.02.2009/Düsseldorf/Nachtresidenz/Club Night"

grüße
Kevin
VanRay
.
.
 
Beiträge: 4
Registriert: 31.01.2009 10:20

Beitragvon Gumbo » 31.01.2009 10:53

Du könntest Folgendes machen: Leite alles auf die „index.php“ weiter und parse dort den URL-Pfad („$_SERVER['REQUEST_URI']“):
Code: Alles auswählen
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php$ index.php [L]
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon VanRay » 31.01.2009 11:49

danke für die antwort, nur kann ich damit gerade noch nich soviel anfangen...
ich erläutere nochmal den aufbau der site:

logisch, ich arbeite mit ner index.php.
diese datei included zum beispiel den ersten teil (hier "events".php).
der rest des pfades sind variablen, die ich brauche, um entsprechende daten aus der db zu ziehen und darzustellen.
ich möchte halt, dass man per normal geschriebenem pfad, zu exakt diesem einen event kommt.

mit folgendem code klappt das auch alles, aber mir fehlen noch die leerzeichen:
Code: Alles auswählen
RewriteRule ^([A-Za-z0-9-_]+)/([A-Za-z0-9-_äöüÄÖÜ]+)/([A-Za-z0-9-_äöüÄÖÜ\.]+)/([A-Za-z0-9-_äöüÄÖÜ]+)/([A-Za-z0-9-_äöüÄÖÜ]+)/([A-Za-z0-9-_äöüÄÖÜ]+)$ index.php?m=$1&s1=$2&s2=$3&s3=$4&s4=$5&s5=$6 [L]


dazu soll natürlich die möglichkeit bestehen per pfad auch nur auf den club oder eine andere ebene zu gelangen:
- events/Köln/26.02.2009/Düsseldorf/Nachtresidenz
- events/Köln/26.02.2009/Düsseldorf

dazu habe ich bisher den zuletzt gezeigten code entsprechend oft in der htaccess, aber immer um eine variable verkürzt.

wie käme ich also mit deinem vorschlag weiter?
VanRay
.
.
 
Beiträge: 4
Registriert: 31.01.2009 10:20

Beitragvon Gumbo » 31.01.2009 12:06

Code: Alles auswählen
$_SERVER['REQUEST_URI_PATH'] = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']);
$segments = explode('/', trim($_SERVER['REQUEST_URI_PATH'], '/'));
var_dump($segments);
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon VanRay » 31.01.2009 13:19

willst du mir gerade mitteilen, dass ich das mod_rewrite komplett nicht benötige? :)

edit: ach doch sicher... um auf die index zurückzukommen... stimmts?
VanRay
.
.
 
Beiträge: 4
Registriert: 31.01.2009 10:20

Beitragvon VanRay » 31.01.2009 13:38

ich glaub es funktioniert! :)

vielen dank schonmal!
VanRay
.
.
 
Beiträge: 4
Registriert: 31.01.2009 10:20

Beitragvon Gumbo » 31.01.2009 14:35

Du brauchst mod_rewrite, um die Anfragen weiterzuleiten. Von da aus kannst du dann aber mit PHP arbeiten, um die Anfrage zu verarbeiten.
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste