1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Permanent Link auflösen

Dieses Thema im Forum "Konfiguration" wurde erstellt von Tim Taylor, 16. Juli 2007.

  1. Tim Taylor

    Tim Taylor Active Member

    Registriert seit:
    13. Juli 2007
    Beiträge:
    29
    Zustimmungen:
    0
    Hi,

    ich hab' als Linkstrutkur 2007/07/13/perma-aufloesen eingestellt.
    Wenn ich ein Permalink in den Browser eintippe, wie wird der Link dann aufgelöst, damit über die post_ID der Content ermittelt werden kann?



    Gruß
     
  2. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2
    die ID wird von der Datenbank an den Link gehängt

    mod_rewrite das Apachemodul wandelt dies dann um


    Admincenter==>Verwalten==>Dateien==>htaccess

    dort findest du es


    lg
     
  3. Tim Taylor

    Tim Taylor Active Member

    Registriert seit:
    13. Juli 2007
    Beiträge:
    29
    Zustimmungen:
    0
    erstmal danke für deine schnelle Antwort - hat schonmal fürs Grundverständnis geholfen :)

    wenn die Seite direkt über einen Deeplink aufgerufen wird, dann kann die DB ja nichts dranhängen, oder?
    Das Ganze wird dann also "nur" über mod_rewrite aufgelöst...

    Wenn ich die eingegebene URL jetzt mit Javascript abfrage, welchen Wert bekommt dann Javascript gelierfert? Die SEO aufbereitete URL oder was kryptisches? :)

    Versteh den Hintergrund noch nicht so ganz, somit auch kein wirkliches Transferdenken gerade :-|
     
  4. Alphawolf

    Alphawolf Well-Known Member
    Ehrenmitglied

    Registriert seit:
    31. Mai 2005
    Beiträge:
    3.315
    Zustimmungen:
    0
    JS bekommt die aufbereitete URL, denn JS ist clientseitig und bekommt nur die "geparste" serverseitige Antwort, nichts dazwischen. Mit JS kannst du keine Serverwerte abfragen bzw verändern.
     
  5. Tim Taylor

    Tim Taylor Active Member

    Registriert seit:
    13. Juli 2007
    Beiträge:
    29
    Zustimmungen:
    0
    klingt logisch :)

    also besteht keine Möglichkeit die URL die mod_rewrite ausspuckt clientseitig irgendwie dran zu kommen?
    Kann ich mod_rewrite aus einer PHP aufrufen, so dass ich clientseitig die PHP aufrufe und die mir eine umgewandelte URL zurückliefert?
     
  6. Lim_Dul

    Lim_Dul Well-Known Member

    Registriert seit:
    1. August 2006
    Beiträge:
    154
    Zustimmungen:
    0
    Genau genommen gibt es keine echte, umgewandelte URL. Die Rewrite Rules bei Wordpress sehen so aus:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Das heißt, wenn die angeforderte URL weder auf eine real existierende Date (!-f) oder auf ein real existierendes Verzeichnis (!-d) zeigt, dann wird die URL auf die index.php umgelenkt. Die umgelenkte URL sieht dann beispielsweise so aus:
    domain/index.php/2007/07/16/Mein-Beitrag

    Das dann daraus die Postid bestimmt wird und weche Seite konkret angezeigt wird, dass ist alles wieder Wordpress-Intern und hat mit mod_rewrite nichts zu tun.

    Was genau willst du eigentlich machen, dann kann man dir vielleicht besser helfen.
     
  7. Tim Taylor

    Tim Taylor Active Member

    Registriert seit:
    13. Juli 2007
    Beiträge:
    29
    Zustimmungen:
    0
    da ich grad viel Zeit habe :) wollt ich mich mal dran machen und WP mit einem Flash-Frontend basteln.

    Wenn jetzt deine SEO-freundliche URL eingegeben wird, dann wird die URL per JS (SWFAdress heisst das Modul) erkannt, Flash verarbeitet die Eingabe und kann dann vom Server über ein AMFPHP-Gateway Daten anfordern.

    Nehmem wir mal dein Bsp "domain/index.php/2007/07/16/Mein-Beitrag".
    Hier würde JS genau diese URL lesen. Flash bekommt die URL von JS geliefert. Jetzt muss Flash die Seite über das Gateway (AMFPHP) aus der DB auslesen, dazu brauch ich die page_ID :)
     
  8. Alphawolf

    Alphawolf Well-Known Member
    Ehrenmitglied

    Registriert seit:
    31. Mai 2005
    Beiträge:
    3.315
    Zustimmungen:
    0
    Ich bin mir zwar immer noch nicht ganz sicher, was du machen willst, aber ich erzähl einfach mal ins Blaue... :)

    Hilft dir der Tipp, dass der "post slug" (also z.B. /meine-erste-seite/) mit in der DB gespeichert wird? Du könntest also bei der Übergabe der URL diesen Teil abfragen (.. SELECT ID FROM wp_posts WHERE post_name LIKE '%meine-erste-seite%') und so an die ID der Seite kommen..

    Ich bin mir fast sicher, dass es falsch ist, da zu einfach, aber kann ja nicht schaden. :)
     
  9. Tim Taylor

    Tim Taylor Active Member

    Registriert seit:
    13. Juli 2007
    Beiträge:
    29
    Zustimmungen:
    0
    siehst du, danach hab' ich die ganze Zeit gesucht, dass sowas in der DB eingetragen ist unter irgend einem Attribut. Total übersehen, dass es sowas gibt.
    Also das wäre schonmal ein ganzes Stück näher an der Lösung....
    Dickes Danke.

    Einzige Problem (und das wird nur in Ausnahmefällen auftreten) ist, dass der post_name halt nicht eindeutig ist - ich kann also mehrere Results bekommen, wenn mehrere Posts mit dem Namen existieren. Wie gesagt, Ausnahmefälle, aber ich deck auch sowas gerne mit einer Lösung ab :)

    Also ich seh prinzipiell eh kein Problem darin mir die URL selbst wieder umzuwandlen. Wenn ich die Regel für das Parsen kenne, so kann ich das ja auch wieder umkehren - dachte nur, dass ich das Rad ja nicht neu erfinden muss, wenn es dafür bereits Funktionen gibt.


    Nochmal zum Verständnis was ich vor habe:
    Frontend: Flash
    Backend: WP

    Flash ist eine Animation. Du rufst die URL auf, die SWF wird geladen und alles läuft "geschlossen" innerhalb der SWF ab. Es gibt einen "Startpunkt" und nach dem kommt dann ein nicht-linearer Inhalt. Ein "fixer" Startpunkt ist alles andere als Deeplinking.
    Ein Blog hat kein Sinn wenn es kein Deeplinking gibt (finde ich zumindest :) ). Da kommt jetzt SWFAdress ins Spiel. Das Ganze ist in JS geschrieben und ermöglicht dass Deeplinking erkannt werden kann und demnach die SWF "reagieren" kann.
    Je nachdem welche URL aufgerufen wird, wird innerhalb der SWF ein bestimmter Content angezeigt.
    Dieser Content wird aus der Datenbank gelesen. Um den Content auszulesen, brauch ich also eine Identifikation des angefoderten Contents...über "/?p=123" hab ich direkt die Info, dass Post mit post_ID=123 angefordert wurde. Flash bekommt von SWFAdress also den String "?p=123" (so zumindest mein bisheriger Kenntnisstand, bin auch noch in der Recherche :) ). Dieser String kann zerlegt werden und ich komme an die post_ID 123 ran.
    Wenn jetzt allerdings die URL SEO sind, dann komme ich über einen String à la "/post-in-flash" nicht an die page_ID ran und kann somit aus der DB kein Content auslesen.

    Da greift jetzt dein Ansatz, dass in der DB "post-in-flash" im Attribut page_name im page-Table gespeichert ist.
    Allerdings besteht jetzt noch das Prob wie oben bereits beschribene bzgl. der Eindeutigkeit...

    Hoffe das Ganze wurde ein wenig klarer :)
     
    #9 Tim Taylor, 16. Juli 2007
    Zuletzt bearbeitet: 16. Juli 2007
  10. Alphawolf

    Alphawolf Well-Known Member
    Ehrenmitglied

    Registriert seit:
    31. Mai 2005
    Beiträge:
    3.315
    Zustimmungen:
    0
    Ich verstehe es, ich fasse es nicht. :)

    Sagt dir das Prinzip der FlashVars etwas? Ist ein ähnliches Prinzip wie Deines, nur ohne das "Framework" SWFAdress, und es wird automatisch von Flash (8?) unterstützt. Damit schreibst du Params in den Quellcode, die dann von Flash aufgefangen werden können.

    Somit könntest du je nach aufgerufener Seite Folgendes oder ähnlich in deinen seitenquelltext schreiben:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    und könntest so direkt die Seiten-ID mit WP-Hausmitteln abfangen.

    Allerdings müsste dann die Flashseite in einer WP-Umgebung existieren, um die Template Tags nutzen zu können..
     
  11. Tim Taylor

    Tim Taylor Active Member

    Registriert seit:
    13. Juli 2007
    Beiträge:
    29
    Zustimmungen:
    0
    Jap, sagt mir was :)

    Ich hol einfach mal ein wenig weiter aus, dann klärt sich, wieso das zwar eine Lösungsmöglichkeit ist, aber nicht in Frage kommt :mrgreen:

    Erstmal zum object-Tag:
    Durch diese Variante wird keine Plugin-Erkennung gewährleistet, die ich zum einen aus Benutzerfreundlichkeit (wenn es schon Flash sein muss) und zum anderen zur Gewährleisung, dass alles korrekt angezeigt wird, anbieten möchte. Wenn der Nutzer also nicht den entsprechenden Flashplayer hat, so würde mit einem object-Tag einfach nichts oder zumindest fehlerhaft angezeigt werden.
    Weiter ist das object-Tag doch recht buggy was die Interpretation der verschiedenen Browser an geht....and so on

    History:
    Flash ist wie bereits erwähnt eine Animation/Film. URL aufrufen, Flash abspielen, das wars. Eine History die über den Browser gesteuert werden kann, existiert nicht. Keine Interaktion für Vor- und Zürckbewegen nicht mehr vorhanden - auch nicht gerade benutzerfreundlich :)


    Mit SWFObject und SWFAdress (setzt auf SWFObject auf) wird dies alles möglich. Ich hab' eine Pluginkontrolle, eine Historyfunktion und ein attraktives Deeplinking zugleich :)

    Wenn es einfach keine vorhandene Funktion gibt, die mir eine aufbreitete URL automatisiert wieder in ihren Ursprungszustand auflöst, dann schreib ich mir das Script einfach selbst *g*
     
  12. Olafb

    Olafb Well-Known Member

    Registriert seit:
    31. Dezember 2005
    Beiträge:
    1.623
    Zustimmungen:
    0
    Da wird es schon eine Funktion geben, sonst würds ja nicht gehen ;)
    Der Permalink ist jedenfalls in wp_posts bei guid gespeichert, danach kannst du ja die ID aus der DB auslesen.
     
  13. Tim Taylor

    Tim Taylor Active Member

    Registriert seit:
    13. Juli 2007
    Beiträge:
    29
    Zustimmungen:
    0
    dafür ist mod_rewirte ja da :) nur da das Ganze ja serverseitig ist, bringt mir das nichts.

    das ist so auch nicht korrekt. In "guid" steht der ungeparste Link zum Post selbst drin. Der bringt aber nichts, da ja aufbereitete Links beim Client ankommen.
     
  14. Olafb

    Olafb Well-Known Member

    Registriert seit:
    31. Dezember 2005
    Beiträge:
    1.623
    Zustimmungen:
    0
    Hab jetzt noch mal gelesen ;)
    Alphawolf schrieb's dir doch schon, dazu ist doch nach deiner Angabe "Flash verarbeitet die Eingabe und kann dann vom Server über ein AMFPHP-Gateway Daten anfordern" da.
    Andererseits, du kannst die ID auch mit JS abfragen, du musst nur dafür sorgen, dass die irgendwo auf der Seite steht, was ja allgemein der Fall ist. Oder ebend mit einem TAG deiner Wahl (FLashVars?). Nur was machst du wenn es eine Seite mit mehreren Post ist!?
     
  15. Tim Taylor

    Tim Taylor Active Member

    Registriert seit:
    13. Juli 2007
    Beiträge:
    29
    Zustimmungen:
    0
    du bist einen Schritt zu schnell :)
    Es existiert ja noch gar keine Seite, der Server schickt ja keine HTML-Seite mit bestimmten Posts an den Client.
    Die SWF wird geladen und die fragt erst beim Server nach bestimmten Daten. Was sie fragen muss, dass soll anhand der URL klar werden.

    Es geht ja erstmal darum, clientseitig herauszufinden, welche URL (die ungeparste) überhaupt aufgerufen wurde. Der Client kennt ja nur die geparste URL, die im Browser steht.

    Die ID rauszubekommen, wenn ich die ungeparste URL hab ist ja kein Thema, egal ob mit JS oder PHP

    Bei mir sind da immernoch ein paar Lücken vom Verständnis :)
    Vielleicht funktioniert das Ganze überhaupt nicht wie ich es mir vorgestellt habe - Flash ist ja schließlich böse *g*
    Kann mir vielleicht jemand erklären, wie der Prozess ist vom Aufruf der URL bis hin zum Senden der angeforderten Seite, mit Hinblich auf Permalinks und mod_rewrite - natürlich detailliert wenns geht *g*
    also nach dem Motto:
    Client sendet Request an Server
    Server registriert in .htaccess, dass blablabla


    EDIT:
    noch was anderes :)
    Fallbeispiel:
    User ruft "domain/wp/2007/07/14/hallo-welt" auf
    mod_rewrite kann ja einen redirect auf "domain/flash/?p=123" machen. Der User sieht das nicht, oder?
    Der Client bekommt dann aber auch "p=123" nicht geliefert, oder?
     
    #15 Tim Taylor, 17. Juli 2007
    Zuletzt bearbeitet: 17. Juli 2007
  16. Alphawolf

    Alphawolf Well-Known Member
    Ehrenmitglied

    Registriert seit:
    31. Mai 2005
    Beiträge:
    3.315
    Zustimmungen:
    0
    Was auch noch eine Möglichkeit wäre, wäre einfach deine Permalink-Struktur anzupassen, also quasi:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Dann hast du immer hinten als letzten Wert deiner URL die ID, die du dann per explode() oder wie auch immer abfragen kannst. Ich denke, weder YahoogleMSN noch der Besucher stören sich an dieser Nummer.
     
  17. Tim Taylor

    Tim Taylor Active Member

    Registriert seit:
    13. Juli 2007
    Beiträge:
    29
    Zustimmungen:
    0
    wäre wieder so ne Notlösung :)

    ich werd einfach weiter recherchieren, wenn ich mod_rewrite/redirect durchschaut hab, dann weiss ich mehr *g*
     
  18. Alphawolf

    Alphawolf Well-Known Member
    Ehrenmitglied

    Registriert seit:
    31. Mai 2005
    Beiträge:
    3.315
    Zustimmungen:
    0
    Naja, zumindest wäre damit das Unique-Problem gelöst, hehe. :p

    Wenn du mod_rewrite durchschauen willst, schau dir einfach mal die mod_rewrite.c auf deinem Server an, dann wird dir die Lust schlagartig vergehen. *gg
     
    #18 Alphawolf, 17. Juli 2007
    Zuletzt bearbeitet: 17. Juli 2007
  19. Olafb

    Olafb Well-Known Member

    Registriert seit:
    31. Dezember 2005
    Beiträge:
    1.623
    Zustimmungen:
    0
    IMHO ist %postname% immer eindeutig, probiert das mal aus, legt einfach mehrere Post mit selben Namen an....
    Ich versteh Tims Problem nicht, hab aber auch keine Ahnung von Flash, er beschreibt, dass er aus Flash auf seine DB zugreifen kann, wozu aber dann über die ID? IMHO ist in diesem Thread allles erklärt ;)

    NB: WP arbeitet nicht mit "echtem" mod_rewrite, es wird nur auf die index.php umgeleitet, der Rest wird dann aus der DB gemacht über GUID, sagte man auch schon hier weiter oben.
     
  20. Tim Taylor

    Tim Taylor Active Member

    Registriert seit:
    13. Juli 2007
    Beiträge:
    29
    Zustimmungen:
    0
    ich wollte grad fragen, woher der Apache in seinem mod_rewrite eigentlich die Regel nimmt :D

    Wieso sagt das auch niemand, dass PHP die Umwandlung macht - das war jetzt ne ganze Weile aneinander vorbeigeredet, ich dachte das macht alles mod_rewrite :)

    dann mal danke an all diejenigen, die sich heir Mühe gegeben haben mir zu helfen
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden