Pattern

low-group

Erfahrenes Mitglied
ich habe bei mir die php-Links per ModRewrite umwandeln lassen.

Im Code steht bei mir dies drinne:

PHP:
$threadid_pattern 	= "((".$boardURL.")/thread\.php.*threadid=([0-9]+)(&.*)?)";

damit wurde die URL ausgelesen, und dann die threadid rausgefiltert, sodaß dann danach in der DB das zugehörige Topic gesucht wurde.

Nun sind meine Links alle in html umgewandelt und aus:

thread.php?threadid=1234 wurde thread,1234.html

und aus:

thread.php?threadid=1234&goto=lastpost wurde thread,1234,lastpost.html

nun müßte ich den obigen Ausdruck su umwandeln, daß er wieder die beiden Links erkennt und die threadid findet. Mom. sieht dies bei mir so aus:

PHP:
$threadid_pattern 	= "((".$boardURL.")/thread,([0-9]+)(&.*)?.html*)";

Nur da erkennt er nur die Links mit thread,1234.html, aber die mit lastpost nicht.

Wie müßte dies aussehen, daß er beide Links erkennt?
Ich hatte es mit einem * vor dem .html versucht, aber das klappte leider nicht.

Wer kan mir dabei helfen?
 
Du musst nicht per GET-Methode übergebene Parameter extra aus der URL rausfiltern, dies macht PHP bereits automatisch (siehe PHP: Vordefinierte Variablen).


Versuch mal folgendes:
Code:
RewriteRule	thread,?([0-9]+)?,?([a-zA-Z]+)?.html	thread.php?threadid=$1&goto=$2
Weitergehend kannst du die Werte der Parameter wie folgt überprüfen:
PHP:
<?php
	[…]
	$threadid = ( isset($_GET['threadid']) && !empty($_GET['threadid']) )
		?	$_GET['threadid']
		:	NULL;
	$goto = ( isset($_GET['goto']) && !empty($_GET['goto']) )
		?	$_GET['goto']
		:	NULL;
	[…]
?>
 
nein, es geht darum, daß in einem Beitrag zum Beispiel jemand eine Boardinterne URL postet, also eine URL eines Threads. Beim absenden wird diese $message durch die Funktion "gejagt" und auf interne URLs geprüft ud wenn er dann eine findet, als thread,1234,lastpost.html, soll er dieses obige ausführen.
 
Auf jeden Fall solltest du den Punkt vor html escapen:

\.html

EIne Frage: Was für eine Bedeutung hat das "&"? Habe ich bisher weder gesehen, noch benutzt.
 
Zurück