Rewrite Rule Problem

Necrolord

Well-known member
ID: 232677
L
1 Mai 2006
1.927
105
Ich habe folgendes Problem auf der Seite www.schul-zitate.de :
So sieht meine momentane .htaccess aus:

Code:
RewriteEngine On

RewriteRule index.html index.php

RewriteRule impressum.html index.php?site=impressum

RewriteRule partner.html index.php?site=partner

RewriteRule guestbook.html guestbook.php

RewriteRule guestbook_(.*).html guestbook.php?page=$1

RewriteRule kontakt.html kontakt.php

RewriteRule linkus.html index.php?site=linkus

RewriteRule zitate.html zitate.php

RewriteRule suche.html suche.php

RewriteRule eintragen.html eintragen.php

RewriteRule zitate_(.*)_(.*)_(.*).html suche.php?page=$1&fach=$2&schule=$3

RewriteRule zitate_(.*).html zitate.php?page=$1

Jetzt möchte eine weitere Unterseite adden und hänge unten folgendes an:
Code:
RewriteRule news.html news.php

Danach funktioniert gar nichts mehr.
Jetzt habe ich folgende Frage(n)

Gibt es eine maximale Anzahl für Rewrite Rules?
Wenn nein, woran könnte es liegen, dass nach dem adden alles abschmiert?

Gruß Steffen
 
hi,

eigentlich dürfte die neue zeile keinen absturz bringen.

kann es sein, dass die news.php per header(location... wieder auf ne andere seite springt und somit alles im kreis läuft? gibt es eine bestimmte fehlermeldung an den browser? hast du auch schon mit einem zeilenumbruch unten abgeschlossen? passiert die fehler immer, auch wenn die zeile weiter oben steht?

greetz
 
Der Browser spuckt folgendes auf jeder Seite außer auf der index Seite aus:

Not Found

The requested URL /zitate.html was not found on this server.
Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch10 mod_perl/2.0.2 Perl/v5.8.8 Server at www.schul-zitate.de Port 80

Header und Footer erzeugen keine Endlos Schleife soweit ich das beurteilen kann.

Mit einem Zeilenumbruch unten habe ich es noch nicht funktioniert, aber egal an welcher Stelle ich es einbaue, es funktioniert danach nichts mehr.

Sagt dir das was?

Gruß Steffen
 
Irgendwie muss es wirklich an der Länge liegen. selbst wenn ich unten einfach zwei Leerzeilen anhänge geht gar nichts mehr.

Gruß Steffen
 
Kann ich mir nicht vorstellen, dass es an der Länge liegt.

Kannst Du uns mal die .htaccess als textfile zur Verfügung stellen ( z.B. als htaccess.txt unter der URL - sofern der Zugriff nicht auch umgeleitet wird) , vielleicht finden wir dann eher was.
 
Kann ich mir nicht vorstellen, dass es an der Länge liegt.

Kannst Du uns mal die .htaccess als textfile zur Verfügung stellen ( z.B. als htaccess.txt unter der URL - sofern der Zugriff nicht auch umgeleitet wird) , vielleicht finden wir dann eher was.

Wie genau meinst du das?
Ich habe die .htacces 1 zu 1 oben stehen?

Gruß Steffen
 
nicht 1:1 vermute ich mal.
Ich denke (hoffe) doch, dass Du in der .htaccess nach jeder REWRITE RULE einen Zeilenumbruch gemacht hast ...

und die .htaccess kann man sich nicht anzeigen lassen.
Einfach mal die Datei zusätzlich unter dem Namen htaccess.txt abspeichern
 
danke.

Die sieht soweit ok aus.
Grundsätzlich steht der . für ein beliebiges Zeichen, wenn ich z.B. die index.html adressieren möchte, würde ich den Punkt escapen ( index\.html ). Ausserdem würde ich noch Anfang und Ende markieren ( mit ^ und $ ).
Vielleicht noch ein [L] hinter jede Regel ? ( Da kann sich vielleicht noch ein Profi dazu äussern, ob das generell sinnvoll ist, oder unnötig ).

So wie die .htaccess da steht scheint sie aber zu funktionieren. Ich konnte zumindest alle Seiten abrufen. Es scheint lediglich keine news.html und keine news.php Datei in dem Verzeichnis zu geben.
 
Es gibt auch keine news.html sondern lediglich eine news.tpl wie bei allen anderen Seiten auch.

Ich verstehe nur nicht das die .htacces gar nicht mehr funktioniert, wenn man was hinzufügt.

Gruß Steffen
 
die Endung tpl steht für template. Im allgemeinen gibt es dann aber auch eine datei.php die mittels php include dieses template einbindet.
Oder eben eine index.php?site=xxxxx , die dann xxxxx.tpl einbindet aber unter index.php aufgerufen wird

Wenn es aber keine news.php gibt bei Dir, dann wird der
RewriteRule news.html news.php
auch ins Leere greifen ( HTTP: 404 ).

die .htaccess ist sehr "empfindlich". Mir hat es sie einmal zerschossen, weil ich einen falschen String in einem Kommentar ( # string ) geschrieben habe.
Warum bei Dir die Rules komplett nicht mehr funktionieren, kann ich Dir so leider auch nicht sagen.
 
die Endung tpl steht für template. Im allgemeinen gibt es dann aber auch eine datei.php die mittels php include dieses template einbindet.
Oder eben eine index.php?site=xxxxx , die dann xxxxx.tpl einbindet aber unter index.php aufgerufen wird

Wenn es aber keine news.php gibt bei Dir, dann wird der
RewriteRule news.html news.php
auch ins Leere greifen ( HTTP: 404 ).

die .htaccess ist sehr "empfindlich". Mir hat es sie einmal zerschossen, weil ich einen falschen String in einem Kommentar ( # string ) geschrieben habe.
Warum bei Dir die Rules komplett nicht mehr funktionieren, kann ich Dir so leider auch nicht sagen.

Danke das erste war schonmal wichtig ;)
Habe natürlich das includen der news.tpl verfessen. Trotzdem geht immer noch nichts wenn ich die rewrite rule für news adde.

Gruß Steffen
 
was hast Du jetzt genau gemacht ?
Eine news.php angelegt, die das .tpl included, oder die index.php erweitert, damit sie ?site=news verarbeiten kann ?
 
Code:
$seite = 'index';
  		include('templates/index.tpl');
  	break;
  	case'impressum':
  		include('templates/impressum.tpl');
  	break;
	case'linkus':
  		include('templates/linkus.tpl');
  	break;
	[COLOR="Red"]case'news':
  		include('templates/news.tpl');
  	break;[/COLOR]
  	case'partner':
		include('templates/partner.tpl');
  	break;

Ich hab das rote in der index.php geaddet.

Gruß Steffen