ich habe wiedermal ein großes Problem mit der ".htaccess" Datei und bin total ratlos und am Verzweifeln.
Seit Tagen versuche ich schon eine sehr einfache Problematik zu lösen und habe unzählige Internetseiten dafür bereits recherchiert.
Ich komme einfach mit der Regex Einstellungen nicht klar.
Bei der Überprüfung werde ich von der Webseite verarscht.
Denn kaum habe ich eine Lösung präpariert und es funktioniert, funktioniert das dann nicht mehr, wenn ich den Test auf einem neuen Browserfenster ausprobiert habe.
Nachdem der 2. Test misslungen ist, zerschießt es mir auch den Browserfenster was ich zuvor mit Erfolg getestet hatte auch, als würde ich die Änderung rückgängig gemacht hätte oder die Änderung nicht abgespeichert hätte.
So weiß ich gar nicht mehr was ich tun soll und was richtig und was falsch ist. Habe etliche versuche gestartet aber komme einfach nicht weiter.
Ich werde die Datei hier mit euch teilen.
Viele versuche habe ich bereits gelöscht und manche erfolglose davon auskommentiert.
Der letzte Zustand ist das, was noch nicht auskommentiert ist.
Hier die Datei:
- Code: Select all
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#RewriteCond %{REQUEST_FILENAME} ^(dashboard|test123)$
#RewriteRule ^$ dashboard/ [NC,R=301,L]
#RewriteCond %{REQUEST_FILENAME} -d
#RewriteRule ^(.+) - [L]
#RewriteRule ^$ public/ [L]
#RewriteRule (.*) public/$1 [L]
#RewriteRule ^public/$ public/ [L]
#RewriteRule ^test/$ dashboard/ [L]
#RewriteRule ^dashboard/$ public/ [L]
#RewriteRule (!test)|(.*) public/$1 [L]
#RewriteCond %{REQUEST_URI} /(apache)
#RewriteRule ^test/$ dashboard/ [L]
#RewriteRule (.*) public/$1 [L]
RewriteCond %{SCRIPT_FILENAME} !-d [OR]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^test/$ dashboard/ [L,QSA]
RewriteCond %{SCRIPT_FILENAME} !-d [OR]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^dashboard/$ public/ [L,QSA]
RewriteCond %{SCRIPT_FILENAME} !-d [OR]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule (.*) public/$1 [L,QSA]
</IfModule>
Options All -Indexes
Mein Istzustand ist Folgendes:
Ich habe im "htdocs" 2 Verzeichnisse, einmal "dashboard" und einmal "public".
Die obige ".htaccess" Datei befindet sich im Root Verzeichnis: "htdocs".
Was ich erreichen möchte, ist eigentlich sehr einfach, und zwar:
Wenn der Host "http://localhost" oder die Domain "http://example.com" aufgerufen wird, soll automatisch alles nach "public" Order weiter geleitet werden.
Denn im "public" Order befindet sich ein weitere ".htaccess" Datei, wo sämtliche Anfragen zum index.php Datei geleitet wird.
Ebenfalls soll alle Anfragen was nach dem Host oder der Domain eingetragen wird (Beispielsweise: http://localhost/asd/asd/ oder sogar http://localhost/dashboard/) auch nach "public" Ordner weiter geleitet werden.
Wenn aber folgendes steht: http://localhost/test/ oder http://example.com/test/, dann soll dies nach "dashboard" Order weiter geleitet werden.
In der Programmierung würde ich es viel einfacher ausdrücken, und zwar etwa so hier:
- Code: Select all
if (address == "test") {
// Leite nach "dashboard" weiter
} else {
// Leite nach "public" weiter
}
Ich hoffe das ich mein Ziel und Vorhaben gut schildern konnte.
Bitte um Hilfe, denn ich bin echt am Verzweifeln und komme überhaupt nicht weiter.
Bedanke mich im Voraus.
MfG
Daniel