2016-05-08 10 views
0

ich einen Weg gefunden, ohne die Seite aktualisieren Sie die Seite URL zu ändern, indem(Ajax) landen auf Seite url ohne den Inhalt Nachladen

window.history.pushState 

verwenden, aber ich konnte nicht auf der Seite landen, oder öffnen Sie sie in verschiedene browse, erhalte ich eine Fehlerseite nicht

für ExMP gefunden:

www.mydomain.com/profile

ich möchte auf diesen Link landen und mich zur Profilseite bekommen. was soll ich tun.

+0

Nur um das Verständnis der Frage zu erleichtern, führt Facebook zum Beispiel das Öffnen eines Fotos durch. Die URL-Leiste ändert sich so, dass sie DIREKT auf dieses Foto zeigt, sodass Sie die URL teilen können, ohne dass Sie verlieren, wo Sie sich auf der Website befinden. Erinnerst du dich an Seiten, die auf dem letzten Jahrzehnt basieren? Sie konnten nur die URL der Homepage bekommen, weil nur interne Frames geändert wurden. Und das war schrecklich –

+0

Ich bin mir nicht sicher, ich verstehe, was Sie versuchen zu tun. Ist es etwas, das jQuery.get() oder jQuery.load() helfen könnte? – JonSG

+0

Ich habe ein Skript, das den Seiteninhalt lädt, ohne die Seite zu aktualisieren, aber die URL erscheint nicht, wenn ich verschiedene Seiten öffne, ich habe einen Weg gefunden, die URL für jede Seite zu bekommen, wie ich oben erklärt habe, aber ich kann nicht Land auf der Seite mit der URL zum Beispiel, wenn ich müde, diese URL zu öffnen "www.mydomain.com/profile " Ich werde einen Fehler 404 Objekt nicht gefunden –

Antwort

1

Sie müssen sicherstellen, dass Ihr Webserver (z. B. Apache oder Nginx) Anfragen an diese URL akzeptiert und diese ordnungsgemäß weiterleitet. Es gibt viele Möglichkeiten, dies zu tun. Zum Beispiel könnte Ihr Webserver alle oder die meisten Anfragen an eine zentrale PHP-Datei umleiten, die die Anfrage weiterleitet. Dies ist im Allgemeinen vorzugsweise in komplexeren Systemen. Für einfachere Fälle kann es jedoch ausreichen, etwas wie mod_rewrite zu verwenden (wenn Sie Apache als Ihren Webserver verwenden).

Angenommen, Ihre Setup erlaubt es, würde dazu führen, etwa wie folgt in einer .htaccess-Datei in Ihrem Dokument root setzen mod_rewrite alle Anforderungen an www.mydomain.com/profile zu www.mydomain.com/profile.php weiterleiten:

RewriteEngine on 
RewriteRule "^/profile$" "profile.php" [L] 

, dass ein sehr einfaches Beispiel ist das‘ ll funktioniert nur für diese spezifische Seite, aber wenn Sie viele Seiten haben, die demselben Benennungsstandard folgen, können Sie auch allgemeinere Regeln anwenden.

Wenn Sie etwas anderes als Apache verwenden, um Ihre Seiten zu bedienen, gibt es ähnliche Funktionen in praktisch allen.

+0

das wird nicht funktionieren, da die Website viele Seiten hat, so sollte es dynamisch sein, wenn ich jeden URL-Speicherort angeben muss, wird es ewig dauern. Vielen Dank. –

+1

@AhmadzIssa Wie bereits erwähnt, ermöglichen mod_rewrite und ähnliche Lösungen allgemeinere Lösungen, für die keine separate Regel für jede URL erforderlich ist. Wenn Sie genau wissen möchten, wie, müssen Sie eine ziemlich detaillierte Spezifikation angeben, was in was umgeschrieben werden soll. Ich würde vorschlagen, [die Dokumentation für mod_rewrite] zu lesen (http://httpd.apache.org/docs/current/rewrite/). –

+0

danke, ich werde die Dokumentation lesen. Ich hoffe, dass es funktionieren wird. –

Verwandte Themen