PHP Probleme mit Rewrite über .htaccess Regeln

Blackbenji

Lieutenant
Registriert
Nov. 2009
Beiträge
565
Hallo,

ich bin ein wenig verwirrt dass meine Regeln nicht mehr richtig funktionieren:
Es geht dabei um mein Dashboard des CMS:

Aufbau Dashboard.php

PHP:
if (isset($_SESSION['login']) == 'true') {
    if (isset($_GET['nav'])) {
        switch ($_GET['nav']) {
			...
		}
			
	} else {
		...
	}
} else {
    if (isset($_GET['nav'])) {
        switch ($_GET['nav']) {
			...
			// hier wird login form submit bearbeitet
		}
    } else {
	    ...
	    // login template
    }
}

Aufbau .htaccess
PHP:
Options +FollowSymlinks
RewriteEngine on

# RewriteBase equivalent - Production
RewriteCond %{HTTP_HOST} !^localhost$
RewriteRule . - [E=REWRITEBASE:/]

# RewriteBase equivalent - Development
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule . - [E=REWRITEBASE:/DevList/]

# user
RewriteRule ^dashboard/user/login/?$ %{ENV:REWRITEBASE}dashboard.php?nav=login [NC,L]
RewriteRule ^dashboard/user/profile/?$ %{ENV:REWRITEBASE}dashboard.php?nav=profile [NC,L]
RewriteRule ^dashboard/user/logout/?$ %{ENV:REWRITEBASE}dashboard.php?nav=logout [NC,L]

Ich muss dazu sagen dass der Webspace auf dem ich das ganze laufen lasse:

1. bei 1und1 steht
2. es neben bei noch 2 weitere .htaccess gibt die aber beide funktionieren!
3. die regeln auf meinem xampp @ mac localhost funktionieren.

aufgerufen wird die url per www.domain.de/dashboard - dann erfolgt die login maske. nach dem submit wird an www.domain.de/dashboard/user/login weiter geleitet, jedoch kommt auch hier nur die login maske. der eintrag unter ?nav=login wird garnicht aufgerufen.
stelle ich das formular auf dashboard.php?.... um, funktioniert alles oO
 
Da es nur ein Webspace ist, habe ich keinen Zugriff darauf. Im Normalen Log-Verzeichnis ist keine RewriteLog hinterlegt.
 
Aber müsstest du nicht an dashboard/user/login/? (Achtung, die zwei letzten Zeichen!) weiterleiten, damit die RewriteRule greift und er die nav-Variable setzt? Und laut deinem Code muss diese ja immer mitgegeben werden.
 
Zurück
Oben