# RewriteRule - Problem mit Ausgabe



## milchkuh74 (5. Juni 2008)

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


----------



## Gumbo (5. Juni 2008)

Woran soll denn erkannt werden, wann die erste und wann die zweite Regel greifen soll, wenn doch beide dasselbe Suchmuster verwenden?


----------



## milchkuh74 (5. Juni 2008)

Daran hat ich jetzt gar nicht gedacht. Vielen Dank, dann weiß ich Bescheid...


----------



## milchkuh74 (5. Juni 2008)

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ß


----------



## Gumbo (5. Juni 2008)

Erst einmal solltest du die regulären Ausdrücke spezifizieren, da der Ausdruck .* auf alles zutrifft. In deinem Fall könntest du Folgendes verwenden:
	
	
	



```
RewriteRule ^[^/]+/([^/-]+)-[^/.]+\.html$ /firmenarchiv_rewrite.php?get=$1 [L]
```


----------



## milchkuh74 (5. Juni 2008)

Oje, das nimmt ja Formen an 

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


----------



## Gumbo (5. Juni 2008)

Neue Informationen, neues Resultat:
	
	
	



```
RewriteRule ^[^/]+/[^/]+-([1-9][0-9]*)\.html$ /firmenarchiv_rewrite.php?get=$1 [L]
```


----------



## milchkuh74 (5. Juni 2008)

Leider trotzdem ne leere Seite....

Stimmt den der Aufruf hinten mit dem get=$1 ?


----------

