Hallo,
was macht denn das rewrite?
Stark vereinfacht: Es weist der im Browser aufgerufenen URL Deinem Content zu. Such nach "mod_rewrite", man kann damit z.B. auch unschöne CMS-URLs umschreiben.
das redirect leitet nur weiter.
meta refresh und java möchte ich nicht.
Mit PHP kannst Du auch einen header senden ...
was ist denn für suchmaschinen am besten?
Das kommt drauf an. Wieder stark vereinfacht: Wenn Du z.B. 2,3 Domains hast für das selbe Projekt erzeugst Du mit einem rewrite (oder einer entsprechenden Einstellung in Deinem Webspace) doppelten Content (=böse). Wenn Du z.B. über eine .com die Seite auf englisch anzeigen lässt, und auf der .de das ganze auf deutsch verwende rewrite.
Du solltest noch mal etwas genauer erklären, was Du eigentlich willst und wie die Ausgangssituation ist.
Grüße, luti