Variable Permalinkstruktur

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Variable Permalinkstruktur

    Hallo Easy Coding Community,

    ich möchte ein ganz neues Portal entwickeln und für Google sollen die Permalinks möglichst freundlich sein.

    Bedeutet, dass ich z.B. die Datei domain.de/unterseite.php über folgenden Link aufrufen will: domain.de/unterseite/

    Bisher ist es ja noch relativ trivial und mittels der .htaccess möglich. Nur möchte ich bei der Linkgestaltung möglichst variable bleiben, sodass z.B. die Artikel, welche aus der Datenbank kommen sollen, unter www.domain/kategorie/hauptkeywort_artikelname/ aufrufbar sein sollen.

    Gibt es da irgendeine Funktion oder ein triviales Beispiel, wie ich das geschickt umsetzen kann?
  • Ok, danke, habe ich jetzt erfolgreich generiert:

    RewriteEngine On
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /produkt.php?kategorie=$1&keywort=$2&artikel_id=1234&artikel=$3 [L]

    Wenn ich dies in die htaccess schreibe funktioniert die Übergabe auch beim Aufruf über domain.de/kategoriename/keywortname/artikel

    Jedoch werden verschiedene Grafiken nun nicht mehr geladen z.B. domain.de/images/layout/logo.jpg - Woran kann dies liegen?

    Vielen Dank für die Hilfe!
  • Vermutlich sind die Bilder per relativem Pfad eingebunden.
    Beispiel: Vor deiner .htaccess lag dein Bild unter domain.de/img/image.jpg und du hast es per <img src="img/image.jpg"> eingebunden.
    Da deine URL jetzt aber domain.de/kategoriename/keywortname/artikel ist, versucht der Browser die Datei domain.de/kategoriename/keywortname/artikel/img/image.jpg zu laden.
    Lösung: absolute Pfade für Bilder und andere Dateien wie JavaScript oder CSS: <img src="/img/image.jpg">
  • Vielen Dank für die Antworten!

    @freeek: Danke! Ich konnte jedoch
    nichtmal mehr die Datei selbst (also direkt) aufrufen. Habe ich
    domain.de/images/layout/logo.jpg aufgerufen, kam ich auch zu der
    definierten produkt.php

    @bYemma: Klasse, das klappt Wird zumindest nun alles geladen und ich kann auch die einzelnen Medien einzelnd laden, danke!

    Habe derzeit recht viel Angst, wenn ich jetzt bei der htaccess grundlegende Definitionsfehler mache, nachher bei Google und SEOtechnisch den kürzeren zu ziehen und hart erarbeitete Rankings zu verlieren, wenn ich es irgendwann erweitern muss.

    Ihr habt doch bestimmt auch schon mal einfache Shops mit Produkten programmiert, wie würdet ihr diese beiden Bedingungen perfekt in der htaccess umsetzen, sodass ihr weiterhin möglichst variabel seid:
    - Alle einstelligen Verzeichnisanfragen (/impressum/) werden auf die jeweilige .php Datei im Hauptverzeichnis geleitet (/impressum.php)
    - Alle dreistelligen Verzeichnisanfragen (/kategorie/hauptkeywort/artikelname/) werden auf die produkt.php mit den jeweiligen Parametern übergeben

    Jetzt die Frage: Macht man das bei professionellen Portalen so? Definiert man da eine globale Anweisung welche alle Verzeichnisanfragen direkt auf die jeweilige .php Datei weiterleitet oder immer individuell (/kontakt/ auf /kontakt.php) um auch später bei Erweiterungen variable zu bleiben? Habe noch nie mit generierten Permalinks gearbeitet, aber ihr habt dochda bestimmt schon mehr Erfahrung, welcher Aufbau für Produkte und Hauptseiten sich programmiertechnisch sowie SEOtechnisch bezahlt macht, oder?

    Hoffe ihr könnt mir da Tipps/Erfahrungen etc. geben :)
  • also ich handhabe das so.

    extrapages.php?page=impressum wird zu /impressum
    extrapages.php?page=contact wird zu /contact
    usw.

    In die Extrapages kommt also eigentlich alles rein was keine eigene Seite verdient bzw. überwiegend nur statischer Inhalt

    Dafür habe ich folgende .htaccess
    RewriteEngine On

    RewriteBase /

    RewriteRule ^(.*).htm$ $1.php

    RewriteRule ^contact$ kontakt.php [L]
    RewriteRule ^impressum extrapages.php?page=impressum [L]
    RewriteRule ^datenschutz extrapages.php?page=datenschutz [L]
    RewriteRule ^forum download.php?page=forum [L]
    RewriteRule ^forum/([^/]*)$ download.php?page=cback&paket=$2 [L]


    Und dann eben für jede weitere PHP File eine eigene Anweisung. Dabei spielt es keine Rolle ob die PHP File für mehrere Seiten zuständig ist oder aber nur für eine Ausgabe

    Quellcode

    1. RewriteRule paket\-([a-z]*) paket_details.php?paket=$1
    2. RewriteRule reseller\-([a-z]*) reseller_details.php?paket=$1
    3. RewriteRule vserver\-([a-z]*) vserver_details.php?paket=$1
    4. RewriteRule archiv\-([0-9]+)-([0-9]+) archiv.php?m=$1&y=$2
    5. RewriteRule root\-([a-zA-Z0-9]*) server_details.php?paket=$1
    6. RewriteRule ^(.*)-a([0-9]*) index.php?mode=lexicon_show&post_id=$2&%{QUERY_STRING} [L]
    7. RewriteRule ^(.*)-k([0-9]*) index.php?mode=lexicon_cat&cat_id=$2&%{QUERY_STRING} [L]