Ja ok, da steht aber auch drinnen, dass wenn es kein Übereinstimmung mit dem "case" gibt, dann eben die home.html aufgerufen wird (default-Bereich).
Also "asien" ruft menschen/asien.html auf
alles andere, was nicht per Case abgedeckt ist, wird über default abgewickelt.
Du hast also so wie ich es sehe eine menschen.html. Die soll also home.html aufrufen
Dann hast Du noch "Ländernamen" die die jeweilige Datei einbinden.
Daher musst Du nun unterscheiden, ob die "$id" mit übergeben wurde oder nicht.
Entweder etwas in der Richtung
Code: Alles auswählen
<?
if(isset($_GET['id']))
{
switch ($id){
case "asien":
include("menschen/asien.html");
break;
default:
header ('HTTP/1.0 404 Not Found');
include ("fehler.html");
}
}
else
{
include("menschen/home.html");
}
?>
oder Du setzte für das "home" in der htaccess auch einen Wert.
Code: Alles auswählen
RewriteRule ^menschen\.html$ /menschen.html?id=home [L]
und prüfst danach dann auch wieder im Switch
Code: Alles auswählen
<?
switch ($id){
case "home":
include("menschen/home.html");
break;
case "asien":
include("menschen/asien.html");
break;
default:
header ('HTTP/1.0 404 Not Found');
include ("fehler.html");
}
?>
oder gehst einen ganz anderen Weg. Jedenfalls darf Dein "default" nicht das "home" sein, sonst wird das immer aufgerufen, egal ob es stimmt oder nicht.
Die Fehler.html ist dann Deine Fehlerseite, oder auch eine andere wenn es schon eine gibt. Das Header() kann auch in die Fehlerseite mit rein und muss nicht in den Switch. Es sendet auch nur den entsprechenden 404-Header.
Gegenfrage:
Gibt es die URL menschen.html überhaupt oder heißt die menschen-home.html? Wenn es menschen.html nicht gibt, dann kannst Du bei der zweiten Version den zusätzlichen Eintrag in der htaccess weglassen.