Zur Navigation

ModRewrite Problem

1 Holle (Gast)

Hallo zusammen,
ich habe ein kleines Problem mit ModRewrite. Es handelt sich um ein KalenderScript, das ich nun auf "sprechende Urls" umstellen möchte. Ich habe nun im Script entsprechende Anpassungen gemacht.

Beispiel:
http://www.tld.de/detail.php?nr=1
nr=1 ist Tour-de-Heselberg
nr=2 ist Tour de France ...

So sollte die Url zu erreichen sein:

http://www.tld.de/Tour-de-Heselberg-1
http://www.tld.de/Tour de France-2

nur wie mache ich das, ohne extra für jeden Kalendereintrag eine
entsprechende Regel in der .htaccess zu machen?
RewriteRule Tour-de-Heselberg-(.*) detail.php?nr=$1?

Das geht doch bestimmt auch einfacher, oder?

Vielen Dank schonmal



25.04.2007 18:14

2 Jörg

Hallo Holle,

ich würde es so probieren:

RewriteRule -([0-9]+)$ detail.php?nr=$1

[0-9]+ steht für eine beliebige Zahl. Zusammen mit dem Begrenzungszeichen $ sollte so sichergestellt sein, dass beim richtigen - getrennt wird

25.04.2007 18:26

3 Holle (Gast)

Vielen Dank Jörg, das klappt prima :)
Bestünde irgendwie auch noch die Möglichkeit das -1 wegzumachen?
Also so: http://www.tld.de/Tour-de-Heselberg

25.04.2007 21:00

4 Jörg

Wenn du auf den Parameter nr verzichten kannst, ist das möglich. In dem Fall misst du die Datenbankabfrage wohl noch entsprechend anpassen, so dass der Eintrag über die Titel-Spalte ausgewählt wird - wobei du darauf achten solltest, dass der Titel unique ist

Die Rule könnte dann in etwa so ausschauen:

RewriteRule ^([^\.]+)$ detail.php?title=$1

[^\.]+ entspricht einer Zeichenfolge, die keinen Punkt enthält, so dass detail.php, robots.txt etc. nicht rewritet werden

25.04.2007 21:46 | geändert: 25.04.2007 21:46

5 Holle

Danke Jörg, so wie es ist lass ich´s mal :)

Den Titel/Description möchte ich nun auch dynamisch anzeigen lassen.

Das sollte doch so in etwa gehen:
<title><?php echo $_GET['nr']; ?></title>
<meta name="description" content="Radsport-Kalender <?php echo $_GET['nr'];?>">

Das geht, allerdings macht es keinen Sinn dort in den Metas die NR
anzeigen zu lassen, sondern vielmehr den Namen der Veranstaltung. Dürfte ich Dir eine Mail diesbezüglich schreiben - ich glaube der Quelltext wäre zu lange

Dann noch was:http://www.tld.de/Tour-de-Heselberg-2006-1
Habe noch das Jahr eingefügt.

Jetz ich die url unter:
Tour-de-Hesselberg-2006-1 und
Tour-de-Hesselberg-1

zu erreichen. Da müßte doch die ModRewrite Sache ingendwie anzupassen sein

02.05.2007 18:13 | geändert: 02.05.2007 18:30

Beitrag schreiben (als Gast)

Beim Verfassen des Beitrages bitte die Forenregeln beachten.





[BBCode-Hilfe]