Werner: Seitennamen wie "index.php?seite=xy" zu "xy.html"?

Hallo!

Ich habe folgendes Problem, was offensichtlich häufig gelöst wurde, aber ich weiss nicht, wie ich es anstelle.

Ich habe einige Templates, deren Content aus einer MySQL Datenbank geholt wird. Nun würde eine typische URL dann so ausehen:

www.meineseite.de/index.php?seite=xy

Aber das halte ich für sehr Benutzerunfreundlich. Ich hätte gerne, dass der Benutzer folgenden Link sieht und eingeben könnte:

www.meineseite.de/xy.html   oder mit Unterordnern:
www.meineseite.de/topic/xy.html

Ich denke, es müsste über die 404 Error Funktion abgefangen und umgeleitet werden können, habe aber nicht das Verständnis, wie ich vorgehe.

Über jede Hilfe würde ich mich freuen!
Grüsse aus Berlin,
Werner

  1. Hi,

    Ich denke, es müsste über die 404 Error Funktion abgefangen und umgeleitet werden können,

    dadurch würde jede völlig korrekte URL vom Browser als fehlerhaft angesehen werden. Beschäftige Dich anhand der Apache-Dokumentation - vorausgesetzt, Du benutzt diesen Server - mit dem Modul mod_rewrite. PHP hat damit übrigens nichts zu tun, weil es erst dann zum Zuge kommen kann, wenn die URL überhaupt gefunden wurde.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo

    Du kannst das ganze ja mal mit htaccess asprobieren. Leite deine 404-Fehler auf ein phpinfo()-Script weiter und schaue, welche Variabeln wie belegt sind und werte sie aus.
    Es gibt da auch ein Modul mod_rewrite was das können sollte, allerdings weiß ich nicht wie des genau funktioniert. Aber dafür gibts ja google usw. Und auch noch andere freundliche User hier =)

    Grüße

    David

    --
    "Nobody will ever need more than 640k RAM!"
    1981 Bill Gates
  3. Hey,

    Wie gesagt mit mod_rewrite kein Problem (unter Apache und Nanoweb).
    Du erstellst auf "deinem" Server einfach eine Datei mit dem Namen
    ".htaccess" und wenn dein Provider den Server nicht kaputtkonfiguriert
    hat dürfte dir folgendes helfen:

    RewriteEngine On
       RewriteRule ^([a-z]+)[.]html$  index.php?seite=$1  [L,NC]

    Damit wären die Seiten als "abc.html" und über die QSVarainte erreichbar.
    Natürlich nur empfehlenswert, so in dem Verzeichnis nicht tatsächlich
    Dateien nach dem Namensschema "wort.html" existieren!

    MsF,
    milky

    --
    This message is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Mailing List for more details.