Moin!
^(.*?)[?]?(.*?)$
^(.*?)?(.*?)$
^(.*?)$
immer 500er, wieso?
Immer verwendest du .*? - wieso? Das matcht unter Umständen auf den Leerstring - wäre nicht so gut. Ok, du hast deinen String zwischen ^ und $ eingebunden, irgendwas wird irgendwas finden. Aber warum dann nicht mit .* vorgehen?
so hatte ich es mir gedacht:
RewriteRule ^(.*?)??(.*?)$ /$1.php?$2 [R=301,L]
Ganz schlechte Idee, vor allem das R=301. Damit erzeugst du einen Redirect, das bedeutet: Der Browser muß den Server _nochmal_ nach der Seite fragen, und zweitens taucht die neue URL in der URL-Zeile auf und wird so dann vermutlich auch in Suchmaschinen gespeichert. Das konterkariert doch das ganze System. Sinn ist es, die internen URLs geheim zu halten, und die öffentlichen URLs sinnvoll umzusetzen.
Warum da Fehler 500 kommt, seh' ich auf den ersten Blick auch nicht - aber das ist ja eh' der umständlichere Ansatz, also lassen wir's lieber erstmal. :)
- Sven Rautenberg