Problem mit Seitenzuweisungsskript

ElGreco93

Erfahrenes Mitglied
Hallo,
hab ein Skript geschrieben damit ich Suchmaschienenfreundliche Urls hat (z.B.:http://www.example.de/Tutorials/Php/Einführung.html).
Nur funktioniert es nicht, wenn eine Seite eingegeben wird, die nicht existiert (404).
Vielleicht findet jemand den Fehler oder kennt ein besseres Sktipt.
Funktionsweise:
Es wird überprüft ob es die Angefordete Seite gibt (wird in config.inc.php Deklariert). Falls es diese gibt wird die Geladen, ansonsten wird 404.php geladen. Sollte es $_GET nicht geben wird die Startseite geladen.
PS: Arbeite mit Templateengine Smarty und xammp (http://www.apachefriends.org/de/xampp-windows.html)


.htaccess Datei
Code:
RewriteEngine On
RewriteRule ^(.*).html$ index.php?page=$1

config.inc.php
PHP:
$sitename = array(
				'login' => 'login.php',
				'registrieren' => 'register.php',
				'impressum' => 'static/impressum.php',
				'profile' => 'profil.php',
				'tutorial' => 'tutorial.php',
				'logout' => 'logout.php',
				'404' => '404.php'
				);

index.php
PHP:
<?php
// Alle Fehlermeldungen anzeigen (außer E_STRICT)
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
ini_set('html_errors', 1);
 
//config datei laden
require_once("include/config.inc.php");

//script für die seitenzuweisung	
if(isset($_GET['page'])) {
	$tmp = explode("/",$_GET['page']);
	$site = $tmp[0];
	if($sitename[$site]!=""){
		require_once($sitename[$site]);
	} else {
		require_once($sitename['404']);
	} 
} else {
$smarty->assign("title","Startseite");
$smarty->assign("content","Willkommen auf meiner HP! <a href=\"http://localhost/registrieren.html\">Home</a>");
$smarty->display("index.tpl");
}
?>

(Hab nur die revelanten Teile des Skriptes kopiert).

Danke schonmal im Vorraus,
Philip
 
Hi, habs nur mal kurz überflogen.

PHP:
if(isset($_GET['page'])) {
    $tmp = explode("/",$_GET['page']);
    $site = $tmp[0];
    if(!$sitename[$site]{
        require_once($sitename['404']);
    } else {
        require_once($sitename[$site]);
    } 
}

Hast das so schon versucht ?
 
Funktioniert so halb.
Wenn ich z.B http:localhost/asdasd.html eingebe kommt meine 404 Seite. Zusätzlich mit dem Fehler:
"Notice: Undefined index: sdf in C:\vhost\xampp\htdocs\index.php on line 23"
Zeile 23: if(!$sitename[$site]){

Nur wenn ich http:/localhost/asdas eingebe kommt die Standard 404 Seite.


Aber hab den Fehler jetzt gefunden: Hab das noch in der .htaccess ergänzt:
RewriteRule ^(.*)$ index.php?page=$1

Jetzt geht alles. Danke
 
Zurück