# „mod_rewrite“-Regeln wie in diesem Forum



## D@nger (21. April 2006)

Hallo,
also mit modrewrite ist es ja möglich dynamische Seiten statisch aussehen zu lassen.
So, aber wie ist das mit diesem Forum. Die normale Adresse ist ja z.B.
*showthread.php?goto=newpost&t=22268* und hier sieht es so aus:
*php/242371-mit-mysql-tabellarisch-anordnen-last-post.html*
Wie bekommt die htaccess-Datei den Thread-Titel und ersetzt dabei die Leerzeichen durch Bindestriche? Danke schon mal.

So, des weiteren, wenn man auf *http://www.tutorials.de/forum/showthread.php?goto=newpost&t=22268* geht wird die URL in der Adresszeile automatisch in *http://www.tutorials.de/forum/sonstige-3d-programme/22268-dxf-import-maya.html#post159809* umgewandelt. Ich wüsste auch gerne wie das möglich ist, vielen Dank.


----------



## Gumbo (22. April 2006)

Der Titel ist bei den Regeln ein variabler Teil, der eigentlich irrelevant ist. Eine entsprechende Regel könnte etwa wie folgt aussehen:
	
	
	



```
RewriteRule   ^[^/]+/([0-9]+)-[^.]+-last-post\.html$   showthread.php?goto=newpost&t=$1   [L]
```
Die hier gewählte Lösung, das „last-post“-Schlüsselwort so einzusetzen, dass es auch Teil des Titels sein kann, kann aber auch zu Problemen führen. Das  Testthema namens „foobar-new-post“ führt so etwa in diesem Forum zu einer Endlosschleife und ist nicht zugänglich.


----------



## D@nger (22. April 2006)

Hallo, vielen Dank Gumbo und wie sieht's hiermit aus?



> So, des weiteren, wenn man auf *http://www.tutorials.de/forum/showthread.php?goto=newpost&t=22268* geht wird die URL in der Adresszeile automatisch in *http://www.tutorials.de/forum/sonstige-3d-programme/22268-dxf-import-maya.html#post159809* umgewandelt. Ich wüsste auch gerne wie das möglich ist, vielen Dank.


----------



## Gumbo (22. April 2006)

Das kannst du mit „mod_rewrite“ nicht realisieren, da das Modul keinen Zugriff auf die Datenbank hat.


----------



## D@nger (22. April 2006)

Ahaaaa, ok, danke, und wie macht das dann Vbulletin?



			
				Gumbo hat gesagt.:
			
		

> Das kannst du mit „mod_rewrite“ nicht realisieren, da das Modul keinen Zugriff auf die Datenbank hat.


----------



## Dennis Wronka (22. April 2006)

Wahrscheinlich ueber einen ganz normalen HTTP-Redirect.


----------



## D@nger (22. April 2006)

Ok, danke, dann habe ich noch folgende Frage. Wenn man einen Redirect ausführt müsste es doch eine Endlos-Schleife geben oder? Denn es wird unsichtbar die "dynamische URL" aufgerufen. Wenn diese aber aufgerufen wird soll ja auf die statische verwiesen werden. Diese wiederum verweist auf die dynamische oder?


----------



## Gumbo (22. April 2006)

Das Modul heißt „mod_rewrite“, da Anfragen nicht nur umgeleitet sondern vor allem auch serverintern umgeschrieben werden können. Es stimmt jedoch, dass von „_12345_-_foobar_-last-post.html“ bis „_12345_-_foobar_.html#post_123_“ drei Einzelschritte notwendig sind wie etwa folgende:
12345-foobar-last-post.html wird serverintern auf showthread.php?goto=newpost&t=12345 umgeschrieben
showthread.php?goto=newpost&t=12345 sucht die Nummer des letzten Beitrags heraus und leitet auf 12345-foobar.html#post123 weiter
12345-foobar.html#post123 wird wiederum serverseitig umgeschrieben, sodass schließlich showthread.php?t=12345#post123 ausgeleifert wird
Alles sehr umständlich. Besser wäre es, direkt auf 12345-foobar.html#last-post zu verweisen und gleichzeitig einen Fragmentanker namens „last-post“ zu setzen. Die ersten beiden Schritte wären damit hinfällig.


----------



## D@nger (22. April 2006)

ok, vielen Dank, dann lass ich das mal lieber.


----------



## Gumbo (22. April 2006)

Auch eine professionelle Software ist nicht immer vorbildhaft. Oft sind diese „Features“ im Frühstadium hinzugekommen und sind im Laufe der Entwicklung einfach nicht verbessert/überarbeitet worden.


----------

