Ordnerstruktur mit htaccess DirectoryIndex sauber ansteuern

Pinky

Erfahrenes Mitglied
Hallo Tutorials.de

seit längerem suche ich nach einer Möglichkeit, folgende Ordnerstruktur auf dem Rootverzeichnis eines Servers zu erstellen (hauptächlich zur besseren Übersicht):

- admin (Hier wird die ganze Webseite gefüttert und bedient)
- login (Hier meldet sich der User für das Adminmenu an)
- webseite (Output der Eingaben im Adminbereich)

Nun möchte ich, wenn ein Besucher die Adresse http://www.meineurl.com aufruft, automatisch auf die index.php im Ordner webseite weitergeleitet wird, jedoch ohne, dass die URL anschliessend so aussieht: http://www.meineurl.com/webseite/

Per DirectoryIndex webseite/index.php hab ich diese Verzweigung bereits hinbekommen. Wenn ich nun aber das Verzeichnis http://www.meineurl.com/login ansteuern möchte, so kommt immer die Übersich aller Files & Ordner, die ich in diesem Directory habe; die index.php wird im login-Ordner also nicht erkannt. Erste wenn ich http://www.meineurl.com/login/index.php eintippe, frisst er mir die index.php-Seite.

Kann mir jemand sagen, was genau angepasst werden muss, damit der Link http://www.meineurl.com/login/ direkt die index.php öffnet?

Vielen Dank & lieber Gruss
Euer Pinky
 
Hallo Saftmeister

offen gestanden: weil ich mich mit mod_rewrite nicht besonders auskenne und der fixen Überzeugung bin, dass dies mit mod_rewrite nicht geht? Ich habe einige Tutorials durchgelesen aber die sind alle auf andere Aspekte eingegangen und ich wurde nicht darüber fündig, was ich eigentlich suchte.

Wenn du mir eine Hilfestellung bieten kannst, nach was genau ich im Netz suchen soll oder du mir hier direkt eine schreiben kannst, bin ich dir mit grossem Dank verpflichtet.

Schöner Sonntag & Gruss
Euer Pinky
 
Also grundsätzlich ist mod_rewrite genau das, was du dafür brauchst. mod_rewrite funktioniert so:

Es wird eine Regel deklariert, die auf den Request-URL passt. Anhand dieser Regel wird mod_rewrite entscheiden, ob umgeleitet werden soll oder nicht.

Dabei solltest du die allgemeinen Regeln ganz hinten anstellen, so das die spezielleren Regeln auf jeden Fall höher priorisiert sind. Das heißt, die Umleitung auf die index.php in webseite sollte ganz am Ende stehen. Ich würde das so machen:

.htaccess
Code:
RewriteEngine On

RewriteRule login webseite/login.php [NC,L]
RewriteRule admin webseite/admin.php [NC,L]
RewriteRule .* webseite/index.php [NC,L]

Im Anhang findest du ein Beispiel zum direkt los testen.
 

Anhänge

  • mr.7z
    mr.7z
    384 Bytes · Aufrufe: 20
Hallo Saftmeister

besten Dank für deinen Input. Ich habe es nun wie folgt angepasst und es funktioniert genau so wie ich es mir wünsche. Vielen Herzleichen Dank & frohe Festtage.

Code:
RewriteRule login login/index.php [NC,L]
RewriteRule admin _admin/index.php [NC,L]
RewriteRule .* website/index.php [NC,L]

Euer Pinky
 
Zurück