Die kurze Antwort ist: es ist überhaupt nicht möglich mit .htaccess!
Eine längere Antwort:
Der Teil nach dem #
Zeichen nicht vom Browser an den Web-Server gesendet werden, da es nur clientseitige verwendet wird.
Diese Art von "Umschreiben" muss mit clientseitigem JavaScript erfolgen.
Das hashchange Ereignis könnte ein Ausgangspunkt für Sie sein:
window.addEventListener('hashchange', function() {
var hash = location.hash.substr(1);
window.location.href = "/" + hash + ".html";
});
Sie auch SPAs (einzelne Seite Anwendungen) aussehen sollte. Es gibt viele Frameworks, mit denen Sie solche Lösungen entwickeln können. Außerdem gibt es viel mehr moderne Techniken, die nicht auf Hashes angewiesen sind, wie das Ereignis und die Mechanismen, die es umgeben.
Ein paar Frameworks, die Ihnen den Einstieg helfen könnte:
aktualisieren
Bei der Betrachtung Ihrer aktuellen .htaccess Setup, es sieht so aus, als ob du das machen willst Umgekehrt, was Ihr Fragetext impliziert - wenn jemand die vison.html
anfordert, möchten Sie sie zu about.php#vision
- und umleiten und nicht umgekehrt.
Wenn das wahr ist, dann ja, können Sie es, indem Sie die R
Flagge (Redirect) und auch die NE
Flagge (NO ESCAPE) von den #
Zeichen zu verhindern, indem .htaccess tun codiert werden:
RewriteRule ^vison.html$ about.php#vision [NE,R,L]
Dies ist keine Abfragezeichenfolge. Dies ist ein Client-Side-Zeug. Dies wird nicht funktionieren. Sie können nur Abfragezeichenfolgen oder andere Dinge neu schreiben. –