CodeIgniter Query String Rewrite in .htaccess

Als ich meine Website zum ersten Mal startete, hatten URLs das folgende Format:

project.php?projectID=1&pageID=2

Vor ein paar Jahren habe ich meine .htaccess-Datei so geändert, dass sie Segmente enthält:

project/1/2

Ich habe alle internen Links aktualisiert, um das segmentierte Format zu verwenden, aber das war gut, weil es weiterhin alle externen eingehenden Links im alten Format unterstützt.

Jetzt bin ich zu CodeIgniter gewechselt. Das Rendern meiner Seiten im segmentierten Format ist einfach, aber ich habe Mühe, herauszufinden, wie die alten URLs für Abfragezeichenfolgen unterstützt werden.

Meine Versuche, Abfragezeichenfolgen nativ in CodeIgniter zu unterstützen, scheinen die segmentierten URLs zu beschädigen, sodass ich nicht beide gleichzeitig unterstützen kann. Das Einrichten einer Route in CodeIgniter zum Umleiten einer Abfragezeichenfolge an einen Controller scheint nicht zu funktionieren. Z.B.:

$route['project.php?projectID=(:any)&pageID=(:any)'] = 'home/projectview/$1/$2';

Mein zweiter Gedanke war, die .htaccess-Datei direkt zu ändern, um die Abfragezeichenfolge wie folgt an den Controller umzuleiten:

(Beachten Sie, dass ich auch die .htaccess-Umschreibung verwende, die das Erscheinen von index.php in der CI-URL beseitigt.)

RewriteRule ^project.php?projectID=(\d*)&pageID=(\d*) project/$1/$2/ [L]
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php/$1 [L]

Diese Umschreiberegel scheint jedoch auch nicht zu funktionieren. Es leitet zu meinem CodeIgniter 404 um, ohne dass es neu geschrieben wird, und selbst wenn die standardmäßige index.php-Regel entfernt wird, leitet es nicht um. Daher gehe ich davon aus, dass hier etwas in meiner regulären / .htaccess-Formatierung falsch ist.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage