mod_rewrite und "/" als Trennungszeichen

flohaase

Mitglied
Hey Jungs

Ich habe ein Problem mit mod_rewrite und zwar will ich einen "/" Slash als Trennungszeichen benutzen.

Hier die .htaccess:

Code:
RewriteEngine On

RewriteBase /testordner auf meinem Server/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^startseite$ startseite.php
RewriteRule ^geschichte$ geschichte.php
RewriteRule ^mitglieder$ mitglieder.php
RewriteRule ^mitglieder/tobi$ tobi.php

Die Link gehen vom Root aus:

Code:
<a href="/testordner auf meinem Server/mitglieder/tobi">

Es wird für jedes Mitglied eine eigenen .php-Seite geben.

Die normalen Links klappen alle, aber nicht die mit "/" drin. Ich will es eig. nur wegen der Optik und der Userfreundlichkeit.

Derzeit bleibe ich einfach auf der Mitglieder-Seite, die URL verändert sich, aber der Inhalt nicht.

Vielen Dank, Gruß Flo
 
Zuletzt bearbeitet:
Ich habe diesen Teil jetzt übersprungen und einfach mal an der Homepage weitergemacht.

Komischerweise geht ^admin/login$ admin/login.php ohne Probleme.

Ein ähnliches Problem habe ich noch öfters.

^admin/guestBookEdit/id/([0-9]*)$ admin/guestBookEdit.php?id=$1 geht nicht, aber
^admin/guestBookEditt/id/([0-9]*)$ admin/guestBookEdit.php?id=$1 geht.

Echt komisch :/
 
Versuch mal MultiView abzuschalten. Das könnte dir an der stelle möglicherweise nen strich durch die rechnung machen.
 
Ich habe jetzt noch weitere Bereiche eingefügt wie z.B. gaestebuch/neuereintrag -> guestBookNewEntry.php und das klappt auch ohne Probleme.

Wie schalte ich das aus?
 
Hi, probier mal die Slashes zu escapen, zb:
Code:
^admin\/guestBookEdit\/id\/([0-9]*)$ admin/guestBookEdit.php?id=$1
manchmal ist das leider notwendig
 
Beim Gästebuch klappt es ohne escapen, nur bei diesem einem Beispiel nicht. Beim "Mitglieder"-Beispiel habe ich es auch schon mit escapen probiert.

Ok, ich werde die Multiviews deaktivieren und mich dann wieder melden. Was genau macht das Multiview eig?

Vielen Dank
 
MultiView ist ein modul das versucht dateierweiterungen und ähnliches automatisch zu erkennen

Du hast beispielsweise eine datei
/bla/test.php

Dann kannst du diese eben mit
/bla/test aufrufen

allerdings erweitert multiview auch files im pfad
sprich
/bla/test/asdf
wird trotzdem /bla/test.php aufrufen.

Je nachdem wie es configoriert ist.

Ursprünglich wurde das Modul entwickelt um unterschiedliche sprachversionen zu haben.

Beispielsweise sendet der Browser einen header für "deutsch" bei der anfrage nach index.html
würde multiview eine index.html.de oder index.de.html ausliefern.

aus dem apache manual
The effect of MultiViews is as follows: if the server receives a request for /some/dir/foo, if /some/dir has MultiViews enabled, and /some/dir/foo does not exist, then the server reads the directory looking for files named foo.*, and effectively fakes up a type map which names all those files, assigning them the same media types and content-encodings it would have if the client had asked for one of them by name. It then chooses the best match to the client's requirements.
 
Zurück