echo $begrüßung;
RewriteRule ^(.*) /index.cgi/$1 [L]
Internal Server Error
Eine genauere Fehlermeldung bekommst du im Error-Log. Der 500er kann alles mögliche sein. Vielleicht ist es bei dir der Fall, dass du eine Endlosschleife produziert hast, .* trifft möglicherweise auch auf dein Ziel (index.cgi) zu, aber das ist erstmal nur Spekulation.
Ebenfalls zur Fehlersuche hilfreich ist das RewriteLog (bei ausreichendem RewritelogLevel). Dies kann man aber nur in der Serverkonfiguration freischalten.
ändere ich die Regel wie folgt ab
RewriteEngine On
RewriteRule ^(.*).htm /index.cgi/$1 [L]
> kommt kein Fehler, jedoch muss ich immer .htm dahinter schreiben.
Ich spekuliere weiter: Durch das .htm wird .cgi ausgeschlossen, weswegen die RewriteRule beim zweiten Durchlauf nicht mehr greift.
> Was ist an der 1. Regel falsch?
> Bzw. wie muss ich diese Regel abändern, damit diese Regel funktioniert?
Falls meine Spekulation richtig ist, könntest du mit einer RewriteCond die index.cgi oder (vielleicht besser) real existierende Dateien und Verzeichnisse ausschließen.
echo "$verabschiedung $name";