2017-12-27 49 views
0

Ich hoffe, dass mir jemand helfen kann. Ich habe eine Website mit Ajax erstellt und ich möchte, wenn jemand www.example.com/example1.html besucht, um umgeleitet zu werden www.example.com/#items/example1.html Ich muss sie an die /#items am Anfang der URL für viele HTML-Dateien umleiten, denn wenn jemand besucht die direkte HTML-Datei die Website ist kaputt (Nein CSS & JS ist in den HTML-Dateien), weil ich die HTML-Dateien nur für Ajax-Aufrufe erstellt habe und direkten URL-Zugriff für eine bessere Benutzererfahrung verhindern möchte. Ich hoffe, jemand hier könnte wissen, wie man eine solche Umleitung mit einer .htaccess Datei erhalten..htaccess Website mit #item in URL für direkten Dateizugriff umwandeln

EDIT habe ich versucht, dies vor ohne Erfolg. Ich weiß nicht, wie diese Umleitung zu tun, um ehrlich zu sein :)

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.html -f 
RewriteRule ^(.*)$ /#items/$1.html 
+0

Bitte zeigen, wie Sie Ihr Problem zu lösen versucht haben und welche besondere Problem, Sie hatten mit Ihrem Versuch. Da Sie wissen, dass Sie eine htaccess-Weiterleitung benötigen, sollten Sie versuchen, es selbst zu tun, bevor Sie hier nachfragen. –

+0

Danke, ich habe jetzt meine Frage bearbeitet und jetzt den Code hinzugefügt, an dem ich versucht habe zu arbeiten. Ich weiß nicht, wie man diese Umleitung macht, um ehrlich zu sein :) – Cody

Antwort

0

Verwendung RewriteRule directive:

RewriteRule ^(.*).html$ /#items/$1.html [NE,R=301,L] 
+0

Danke, aber wie bekommt man diese Umleitung für alle HTML-Artikel? Ich habe meine Frage bearbeitet, um das Code-Snippet zu zeigen, mit dem ich versucht habe zu arbeiten. Ich versuche, alle '.html' Dateien auf einmal und nicht eins nach dem anderen umzuleiten, wenn möglich. Weil es viele '.html' Dateien gibt, die diese Weiterleitung benötigen. – Cody

+0

gerade bearbeitet, müssen Sie RewriteRule Flags hinzufügen (https://httpd.apache.org/docs/2.4/rewrite/flags.html), [NE] für kein Escape (# ist beim Umschreiben escaped), [R = 301 ] für die Umleitung dauerhaft – Ben

+0

Danke, aber nach der Implementierung Ihres Codes brach es alle Ajax-Aufrufe auf meiner Website und es ging in einer Schleife mit vielen Fehlern geladen. Es wäre toll, wenn es eine Option wie eine if-Anweisung gäbe, wenn die direkte URL abgerufen wird, dann füge '/ # items' in die URL ein, wenn sie nicht bereits hinzugefügt wurde oder etwas Ähnliches, damit es nicht endlos wird Schleife im Ajax-Aufruf. – Cody

Verwandte Themen