Hallo Rolf,
Genau. Ich war der Meinung, dass genau das dein Ziel war.
zu Beginn wusste ich nicht, dass bei einem Wechsel des URL-Parameters die Webseite neu geladen wird. Das wurde mir erst später bewusst. Deswegen habe ich mich gedanklich schon von der Ajax-Lösung verabschiedet.
Jein. Ja, weil die Defaultseite damit geladen wird und ja, weil der Fallback ist, und Nein, weil nicht immer die Defaultseite geladen wird.
Stimmt, bei refresh wird nicht die Default-Seite geladen.
Ich habe das so verstanden, dass Du diese URLs hast (jeweils mit https://domain davor):
/games/demons-souls/ Default-Abruf - Zeigt game Tab /games/demons-souls/game Expliziter Abruf des game Tab /games/demons-souls/releases Expliziter Abruf des releases Tab ... /games/demons-souls/savegame Expliziter Abruf des savegame Tab
Genau.
Deine .htaccess würde die URLs so umwandeln
/pages/games/demons-souls/index.php /pages/games/demons-souls/index.php?page=game /pages/games/demons-souls/index.php?page=releases ... /pages/games/demons-souls/index.php?page=savegame
Das tut sie, ja.
BTW - eine URL wie /pages/games/demons-souls/, wie sie in deiner Angabe der problematischen URL steht, darfst Du nicht publizieren, denn da funktioniert die Seitennavigation nicht. Dafür ist keine RewriteRule da, wie es scheint. Also: Die URL immer ohne /pages, dann greifen deine Rewrites sauber.
Ja, zu dem Zeitpunkt hatte ich noch nicht die richtigen Rewrites parat.
var href = $( this ).attr( "href" ); window.history.pushState( null, "", href ); $.ajax( { url: this.href, success: function( html ) { ... } );
Hier wird es nun falsch, denn Du hast einen Satz von mir übersehen. Darauf hättest Du auch selbst kommen können, wenn Du das Prinzip deiner Seitenkonstruktion ganz verstanden hättest. Ich schrieb:
Der Ajax-Abruf muss natürlich berücksichtigen, dass die Tab-Scripte nun in einem page-Ordner stehen, und das in die URL einbauen.
Ich erinnere mich wieder daran, dass du das sagtest. Und ich war mir schon ziemlich sicher, dass genau dies das Problem ist, nämlich dass sich die Seiten jetzt in einem Unterordner befinden, der da heißt subpages.
D.h. wenn Du
/games/demons-souls/releases
abrufst, dann läuft dein index.php an und liefert die komplette Seite mit dem releases-Tab. Dein Ajax möchte aber nur den Inhalt des releases-Tab sehen. Wie heißt die URL, die Dir nur den Tab-Inhalt liefert? Das musst Du als URL für den Ajax-Aufruf verwenden. Das unterscheidet sich aber notwendigerweise von der URL, die Du dem Browser für die Adresszeile geben musst, weil beide URLs unterschiedliche Inhalte liefern müssen.
Ja, genau das habe ich die ganze Zeit versucht irgendwie in Code umzuwandeln. Leider verstehe ich nicht wirklich, wie das zu schreiben ist. Könntest du mir das vielleicht weiterhelfen und für einen AHA-Moment bei mir sorgen?
Außerdem funktioniert der Zurück-Button nicht, wie er soll.
Ja, blöd ausgedrückt. Er srpingt einfach nicht zurück auf die vorherige Seite bzw. nur in der URL-Zeile, aber der Klick auf den Zurück-Button wird nicht so verarbeitet, dass die Seite neu geladen wird.
Boris