2016-04-23 10 views
0

Ich muss URL in .htaccess neu schreiben? Hier unten ist eine Beschreibung meines Problems.Need um URL neu zu schreiben enthalten # Tag in htaccess

URL: www.example.com/about.php#vision

Needs neu geschrieben werden als: www.example.com/vison.html

ich schon versucht, diese wie in unten erwähnt, aber es funktioniert nicht

+0

Dies ist keine Abfragezeichenfolge. Dies ist ein Client-Side-Zeug. Dies wird nicht funktionieren. Sie können nur Abfragezeichenfolgen oder andere Dinge neu schreiben. –

Antwort

1

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] 
+0

danke @anders tornblad –

Verwandte Themen