Zur Navigation

Pseudo-Ordner dazwischenschalten (Mod_Rewrite)

1 Dominikk (Gast)

Hallo,

ich hoff ihr(du) kannst mir erneut bei eine Mod_Rewrite Problem helfen.

Ich habe eine .htaccess-Datei mit folgenden Inhalt:

AddType application/x-xpinstall .xpi
RewriteEngine On
RewriteBase /script/

RewriteRule !\.(js|ico|gif|jpg|png|css|xpi)$ index.php

Die Adresse wird wie folgt aufgerufen domain.de/script/xyz/index.php?parameter

XYZ sind verschiedene Accounts.

Nun möchte ich einen Ordner "admin" dazwichen schalten.
domain.de/xyz/admin dieser soll immer auf domain.de/xyz/index.php?modul=admin&controller=.. zeigen.

Der Aufruf domain.de/xyz/admin/index.php?modul=page ist trotzdem der gleiche wie domain.de/xyz/index.php?modul=page.

Ist das möglich?

Ich habe quasi eine flache Struktur. Alle Module sind gleich ansteuerbar ?modul=x. Nun möchte ich aber das man durch angabe des "PseudoOrdners" Admin automatisch in das Admin Modul kommt. Aber von dem Adminmodul aus andere Module auch über /admin/index.. ansteuern kann.

Vielen Dank schonmal..

26.10.2012 23:13

2 Jörg

Nun möchte ich einen Ordner "admin" dazwichen schalten.
domain.de/xyz/admin dieser soll immer auf domain.de/xyz/index.php?modul=admin&controller=.. zeigen.

Der Aufruf domain.de/xyz/admin/index.php?modul=page ist trotzdem der gleiche wie domain.de/xyz/index.php?modul=page.

Ist das möglich?

Ich denke nein, weil der Parameter modul entweder den Wert page oder den Wert admin beinhalten kann, aber nicht beide zugleich.

27.10.2012 08:19

3 Dominikk (Gast)

Danke für die Antwort.

Hm eigentlich hab ich im Moment ja genau das was ich brauche. Wenn ich den Ordner Admin dazwischen stelle ruft er mir die Seiten trotzdem auf...

Was ich bräuchte wäre vermutlich ein Weiterleitung... Sprich wenn man den Ordner /admin angibt das er automatisch auf admin/index.php?modul=page weiterleitet. Aber eben nur weiterleiten wenn keine Parameter vorhanden sind also wirklich mit /admin oder /admin/ aufhört

Das sollte ja gehen?

27.10.2012 10:12

4 Jörg

Was ich bräuchte wäre vermutlich ein Weiterleitung... Sprich wenn man den Ordner /admin angibt das er automatisch auf admin/index.php?modul=page weiterleitet. Aber eben nur weiterleiten wenn keine Parameter vorhanden sind also wirklich mit /admin oder /admin/ aufhört

Oberhalb der anderen Rule:

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^admin/?$ http://example.com/admin/index.php?modul=page [R,L]

Die Frage ist allerdings, ob dies mit der angegebenen RewriteBase so funktioniert.

27.10.2012 10:48

5 Dominikk (Gast)

Danke für die Antwort.

Also folgendes würde gehen
RewriteRule ^xyz/admin/?$ xyz/admin/index.php?modul=page [R,L]

Problem ist aber das xyz dynamisch ist und meine .htaccess xyz nicht kennt.

27.10.2012 10:53

6 Jörg

Du kannst einen geklammerten regulären Ausdruck durch ein $1 wiederaufnehmen:

RewriteRule ^(.+)/admin/?$ http://example.com/$1/admin/index.php?modul=page [R,L]

27.10.2012 10:59

7 Dominikk (Gast)

Danke

27.10.2012 11:03

... 1 Monat später ...

8 Dominik 2 (Gast)

Ich habe nun einen Serverwechsel hinter mir.

Das Problem ist nun das diese .htaccess nicht mehr in dem gleichen Ordner liegt sondern eine Ebene höher sprich:

/var/www/project/script/....
/var/www/project/.htacess

Wenn ich nun als RewriteBase /project habe dann verwendet er meinen script Ordner nicht...

Der aufruf soll so sein domain.tld/project/clients/xyz => domain.tld/project/script/index.php

Die Logik von oben sollte schon stimmen aber irgendwas haut mit meinen RewriteBase nicht hin, egal wie ich es drehe

Wo ist der Gedankenfehler?

Vielen Danke schon mal für die immer schnelle Antwort

19.12.2012 23:18

9 Jörg

Hast du es auch ganz ohne RewriteBase versucht?

Bei einigen Wehostern ist die Angabe einer RewriteBase notwendig, bei anderen ist diese nicht unbedingt erforderlich, und bei einer dritten Gruppe geht's nur ohne.

19.12.2012 23:42 | geändert: 19.12.2012 23:44

10 Dominik 2 (Gast)

Nein, werde es heute Abend mal probieren.

Aber ich glaube ich verstehe den RewriteBase nicht so ganz, also was er angibt?

Den Pfad ab root vom Server oder soll er den Pfad "oben in der Adresszeile" bezeichnen

20.12.2012 10:14