Seite 1 von 1

mod_rewrite + subfolders

Verfasst: 21.02.2004 09:46
von LordAvalon
Wenn ich die Datei $id2/$id1.html aufrufen möchte und damit auf index.php?id=$2&id2=$1 verweisen möchte, dann schreibe ich in meine .htaccess Datei folgendes:

Code: Alles auswählen

RewriteEngine On
RewriteRule ^([A-Za-z0-9_]+)/([A-Za-z0-9_]+).html$ index.php?id=$2&id2=$1
Das funktioniert.Wenn ich jetzt noch einen Unterordner im Unterordner habe, müsste das ganze dann ja so aussehen:

Code: Alles auswählen

RewriteRule ^([A-Za-z0-9_]+)/([A-Za-z0-9_]+)/([A-Za-z0-9_]+).html$ index.php?id=$2&id2=$1&id3=$3
(wenn $id2/$id/$id3.html aufgerufen werden soll.)

Nur klappt es irgendwie nicht ... Seht ihr darin einen Fehler ?

In meiner index.php, hab ich an der Stelle, wo es darauf ankommt, was includet wird, folgendes stehen:

Code: Alles auswählen

<?php
$id = $_GET["id"];
$id2 = $_GET["id2"];
$id3 = $_GET["id3"];

$DEFAULT = "startseite.php";
$ERROR = "404.php";
$inc = "";

if ($id && $id2) {
  if (file_exists("$id2/$id.php")) $inc = "$id2/$id.php";
  else $inc = $ERROR;
  
} else if ($id && $id2 && $id3) {
  if (file_exists("$id2/$id/$id3.php")) $inc = "$id2/$id/$id3.php";
  else $inc = $ERROR;
  
} else if ($id) {
  if (file_exists("$id.php")) $inc = "$id.php";
  else $inc = $ERROR;

} else {
  $inc = $DEFAULT;
}

include($inc);
?>
Oder ist darin ein Fehler ?

Verfasst: 21.02.2004 18:33
von k-5
also mit dem .htaccess hab ich nochnix gemacht ..

aber deine if abfrage hat nen fehler ..

der mit den 3 ids wird nie angesprungen ..

die zeile muß als erstes stehen ..

Verfasst: 22.02.2004 10:41
von LordAvalon
Danke. Hast recht , ich werds mal testen :)