Ankündigung

Einklappen
Keine Ankündigung bisher.

Inhalte aus Unterverzeichnis lesen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Inhalte aus Unterverzeichnis lesen

    Moin Moin!

    Nach Jahren des einsamen für mich hin entwickeln, habe ich gerade doch dann mal ein Problem das ich irgendwie nicht gelöst bekomme.
    Ich vermute das ich einfach Betriebsblind bin - aber: Ich komme nicht weiter.

    Ich hol euch mal ab: Es gibt eine Website, die hat wie ein Blog mehrere Artikel und diese liegen in einem Unterordner.
    Nun möchte ich diesen aber per htaccess ausblenden (in der URL) und die PHP Endung auch gleich noch mit weg.

    Struktur:
    PHP-Code:
    .htaccess
    artikel
    /
    artikel/freizeitzombies.php
    index
    .php 
    Der Link zu dem konkreten Artikel sollte dann so aussehen:
    PHP-Code:
    www.domain.de/freizeitzombies
    Könnt ihr mir da einmal weiterhelfen - entweder mit einem Snippet oder einen Beitrag der das löst?
    Ich hab mich bereits durch diverser Websites gewühlt aber eben dieses Problem einfach nicht gelöst bekommen.
    Wobei ich direkt sagen muss: Mit htaccess war ich leider noch nie richtig fit!

    Grüße und Dank,
    Jon

  • #2
    Hallo,

    im Prinzip brauchst Du nur eine fixe Weiterleitung von allen Request auf Deine index.php. Die index.php muss dann allerdings den ursprünglich angefragten URL auslesen und dementsprechend die richtigen PHP Skripte includen.

    Du brauchst im Prinzip nur folgende .htaccess:
    Code:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ index.php [L,QSA]
    </IfModule>
    Die Zeilen der Reihe nach:
    Die erste Zeile prüft, ob das Rewrite Modul geladen wurde bzw. ob es aktiv ist.
    Die zweite Zeile schaltet es explizit an.
    Die dritte Zeile ist die rewrite Regel an sich selbst. Die umschreibt alle zutreffenden URLs mittels des Regulären Ausdrucks auf Deine index.php. Dabei wird der ursprüngliche URL beibehalten. Dafür sorgen die Optionen hinten dran, also das [L,QSA].
    Die letzte Zeile schließt schließlich die IF Bedingung ab.

    Theoretisch bräuchtest Du nur die dritte Zeile. Das andere außen herum ist sozusagen nur Schnick Schnack, der für mehr Sicherheit sorgt. Und mittels der Super Global $_SERVER['REQUEST_URI'] kannst Du dann den ursprünglichen URL abholen.

    Dieser eine Rewrite Rule fängt alles ab. Du kannst dort natürlich auch fixe Werte eintragen. Dann hättest Du halt für 50 Seiten auch 50 Rewrite Rules. Das macht man normalerweise nur für SEO URLs.

    Mehr zum Thema:
    https://gist.github.com/RaVbaker/2254618

    Und aus der offiziellen Doku:
    http://httpd.apache.org/docs/current...d_rewrite.html


    MFG

    derwunner

    Kommentar


    • #3
      Also, vom Prinzip verstanden. Allerdings habe Problem das ich in der Struktur der "Unterseiten" lassen würde, da ich dort Informationen im HTML Header habe dich ich als Basis für diverse andere Scripte nutze. Ich habe in allen experimentellen Skripten auch mehr das Gefühl bekommen, das dass vielleicht auch einfach nicht so geht wie ich es gerne hätte.

      Kommentar


      • #4
        Dieser eine Rewrite Rule fängt alles ab
        Vorsicht.. Nämlich auch Requests auf alle anderen Resourcen wie CSS, Bilder etc.. Schau dazu mal zB hier: http://www.php-rocks.de/thema/58-ein...-umsetzen.html
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Ich habe das Thema - da ich auch noch mal Google benutzt habe - noch in "Inhalte aus Unterverzeichnis lesen" umbenannt. Da es das einfach eher trifft.

          Kommentar

          Lädt...
          X