RewriteRule - Problem mit Ausgabe

milchkuh74

Grünschnabel
Hallo,

ich habe ein kleines Problem mit der RewriteEngine.

Ich verwende derzeit folgende Regeln:

RewriteRule ^(.*),(.*).html$ /firmenadresse_rewrite.php?get=$2 [L]
RewriteRule ^(.*),(.*).html$ /firmenarchiv_rewrite.php?get=$2 [L]

Nun habe ich das Problem, das beim Aufruf der entsprechenden Seite, die die zweite Regel ausführen sollte, die erste Regel genommen wird.

Ersetze ich in der zweiten Regel das ^(.*),(.*) durch ^(.*)-(.*) rufe dies entsprechend auf,
greift die Regel.

Was muss ich ändern, um nicht bei jeder Regel ein anderes Trennzeichen in Form von , oder - oder ; etc verwenden muss?

Vielen Dank für die Hilfe jetzt schonmal
 
Woran soll denn erkannt werden, wann die erste und wann die zweite Regel greifen soll, wenn doch beide dasselbe Suchmuster verwenden?
 
Mhh, jetzt nochmal ne Frage, wie baue ich das ganze auf, wenn ich Verzeichnise nutzen möchte?

Gebe ich die Regel dann so an:
RewriteRule ^(.*)/(.*)-(.*).html$ /firmenarchiv_rewrite.php?get=$2 [L]

oder in der Form

RewriteRule /firmenarchiv_2005/^(.*);(.*).html$ /firmenarchiv_2005_rewrite.php?get=$2 [L]

Wobei ich zweiteres gerade probiert habe, jedoch nur eine leere Seite erhalte. Finde leider keine Ausreichenden Infos mit denen ich was anfangen kann.

Gruß
 
Erst einmal solltest du die regulären Ausdrücke spezifizieren, da der Ausdruck .* auf alles zutrifft. In deinem Fall könntest du Folgendes verwenden:
Code:
RewriteRule ^[^/]+/([^/-]+)-[^/.]+\.html$ /firmenarchiv_rewrite.php?get=$1 [L]
 
Oje, das nimmt ja Formen an :confused:

Ich mache das leider nur als Vertretung und habe daher nicht so die Ahnung.

Also wenn ich dein Bespiel nehmen, verstehe ich das so

^[^/]+/([^/-]+)-[^/.]+\.html$
Verzeichnis/Dateiname1-Dateiname2

Also müsste der Aufruf für die HTML-Datei so aussehen:
firmenarchiv2005/ab-elektronik-gmbh-176415.html

Leider bekomme ich dann immer noch ne leere Seite angezeigt.

Den Link erstelle ich so:
$html_file = make_html_file("firmenarchiv2005/$row_a->fname-$row_afirmen->id.html");

Sorry, aber ich habe keinen Schimmer wo da der Fehler sein soll. Hoffe mein Kollege ist bald aus dem Urlaub zurück :(
 
Neue Informationen, neues Resultat:
Code:
RewriteRule ^[^/]+/[^/]+-([1-9][0-9]*)\.html$ /firmenarchiv_rewrite.php?get=$1 [L]
 
Zurück