Zur Navigation

Zugriff auf Datei ohne php-Endung [2]

11 Jörg Kruse

In der .htaccess im Verzeichnis /verz:

RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ $1.php/$2/$3

13.12.2012 10:08

12 christa

Wie vermutet funktioniert das nicht. Die Seiten müssen überarbeitet werden. Melde mich dann evtl. für´s rewrite wieder.

Danke Deiner Mühen
Christa

13.12.2012 17:17

... 3 Monate später ...

13 christa

Hallo Jörg

etwas verspätet aber immerhin :)

also die Seiten sehen nun so aus wie unten dargestellt und sollten in etwas freundlichere urls umgeschrieben werden.


xyz.tdl/verzeichnis/angebote.php?kat=viren
in xyz.tdl/verzeichnis/angebote/viren/1

xyz.tdl/verzeichnis/angebote.php?kat=viren&page=2
in xyz.tdl/verzeichnis/angebote/viren/2


xyz.tdl/verzeichnis/information.php?ID=neutrum
in xyz.tdl/verzeichnis/informationen/neutrum


xyz.tdl/verzeichnis/immunität?ID=139
in xyz.tdl/verzeichnis/immunität/139

Könntest Du mir behilflich sein mit den richtigen Befehlen in der htaccess?

mit bestem Dank im voraus
Christa


21.03.2013 07:35

14 Jörg Kruse

xyz.tdl/verzeichnis/angebote.php?kat=viren&page=2
in xyz.tdl/verzeichnis/angebote/viren/2

.htaccess im Verzeichnis /verzeichnis:

RewriteRule ^angebote/(.+)/([0-9]+)$ angebote.php?kat=$1&page=$2

$1 nimmt den ersten geklammerten Ausdruck wieder auf, $2 den zweiten

Wenn /angebote.php?kat=viren denselben Inhalt ausgibt wie /angebote.php?kat=viren&page=1 sollte diese Rule auch /angebote/viren/1 mit abdecken

xyz.tdl/verzeichnis/information.php?ID=neutrum
in xyz.tdl/verzeichnis/informationen/neutrum

RewriteRule ^informationen/(.+)$ information.php?ID=$1

xyz.tdl/verzeichnis/immunität?ID=139
in xyz.tdl/verzeichnis/immunität/139

Ist die obere URL selbst schon rewritet? "immunität" ist keine reale Datei, nehme ich an

21.03.2013 14:45

15 christa

Zitat von Jörg

[quote]xyz.tdl/verzeichnis/immunität?ID=139
in xyz.tdl/verzeichnis/immunität/139

Ist die obere URL selbst schon rewritet? "immunität" ist keine reale Datei, nehme ich an

sorry da ist ein Fehler drin: sollte heißen

xyz.tdl/verzeichnis/immunität.php?ID=139
in xyz.tdl/verzeichnis/immunität/139


21.03.2013 16:38

16 Jörg Kruse

Dann kannst du im Prinzip so vorgehen, wei bei information.php. Ein Problem könnte vielleicht der Umlaut im Dateinamen darstellen - das müsstest du austesten.

21.03.2013 17:03

17 christa

danke Jörg, werde das so umsetzen. Bezüglich Weiterleitung der einzelnen Seiten werde ich auf einem anderen Tread wieder auftauchen.

Grüße
Christa


21.03.2013 18:23

18 christa

Hallo Jörg

hab´s mal mit dem ersten Ausdruck versucht:

im Verzeichnis /verzeichnis eine neue .htaccess erstellt und folgende Befehle eingegeben:

RewriteEngine On
RewriteRule ^angebote/(.+)/([0-9]+)$ angebote.php?kat=$1&page=$2

angebote.php liegt im /verzeichnis Verzeichnis

Resultat: keine Umsetzung, keine Fehlermeldung, url bleibt als dynamische bestehen.

Du hast sicher eine Erklärung, wo mache ich was falsch?

LG
Christa

22.03.2013 06:51

19 Horst_M

Zitat von christa
RewriteEngine On
RewriteRule ^angebote/(.+)/([0-9]+)$ angebote.php?kat=$1&page=$2

Was mich etwas irritiert, ich würde vor angebote.php einen Schrägstrich setzen.

RewriteRule ^angebote/(.+)/([0-9]+)$ /angebote.php?kat=$1&page=$2

Und dann bin ich mir gerade nicht sicher, warum ich bei diesen Beispielen für Rewrite Regeln und Bedingungen /das_verzeichnis/ mit aufnehmen musste, obwohl die htaccess im Verzeichnis lag. Da die aber getestet sind, muss es einen Grund gegeben haben. Somit würde ich das auch einmal so testen:

RewriteRule ^angebote/(.+)/([0-9]+)$ /verzeichnis/angebote.php?kat=$1&page=$2

22.03.2013 09:52 | geändert: 22.03.2013 10:28

20 Jörg Kruse

@ Horst

Mit dem Slash am Anfang wird vermutlich weitergeleitet, d.h. die URL ändert sich von der statischen auf die dynamische URL.

@ christa

Resultat: keine Umsetzung, keine Fehlermeldung, url bleibt als dynamische bestehen.

D.h. du gibst die dynamische URL im Browser ein? das mod_rewrite sorgt lediglich für die serverinterne Rückübersetzung statischer in dynamische URLs. D.h. du musst die statische URL in die Adresszeile des Browsers eingeben.

22.03.2013 15:27