mod_rewrite und php skript

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

  • mod_rewrite und php skript

    Hallo,
    ich möchte was mit dem mod_rewrite machen.
    ein newsskript wird bisher über
    http://www.seite.de/news.php?id=1

    wie kann ich es machen, das der aufruf jetzt so erfolgt:

    http://www.seite.de/news/1

    ich hab schon vieles auspobiert, mit php skripten usw, doch es geht anscheinend nur richtig mit dem mod_rewrite.

    vielen dank,
    viele grüße
    devmag
    --
    http://www.devmag.net
    Schaut euch das mal an:PHP und AJAX lernen, sowie mein Blog über die Reise auf dem Jakobsweg.

  • #2
    mod_rewrite ist sicherlich die beste Lösung, es geht aber auch mit der .htaccess:

    Lege im Stammverzeichnis eine .htaccess mit folgendem Inhalt an:

    ErrorDocument 404 /404.php

    Die 404.php sieht dann so aus:

    <?

    if (strstr($REQUEST_URI, "/news.php"))
    {
    header("HTTP/1.0 200 OK");
    header("location:news.php?id=xyz"); // Aus der $REQUEST_URI kriegst Du mit strstr() und substring() die Nummer des angeforderten Artikels.
    }

    else die();

    ?>

    Bin in Eile, daher keine Haftung für Syntaxfehler :-)
    GROSSER HAKEN: Jeder Aufruf von /news/xyz wird vom Apache erstmal als 404-Fehler bewertet *und geloggt*, auch wenn hinterher eine Seite nachgereicht wird! Das heisst, dass Deine Serverlogs im Unterschied zu mod_rewrite unübersichtlich bis unbrauchbar werden.

    Kommentar


    • #3
      So macht man das mit rewrite-rules!

      Inhalt der .htaccess-datei:

      RewriteEngine on
      RewriteCond %{REQUEST_URI} ^/news/([^/]+)$
      RewriteRule .* /news.php?id=%1
      CAITS MovieBase für Windows - Filme verwalten mit System!

      CAITS PowerCounter - mehr Statistik gibt es nicht!

      Kommentar


      • #4
        Schön, kann ich auch gut brauchen, danke! :-)

        @CAITS: Könntest Du mir noch sagen, wie ich das mit Domains mache (in der <VirtualHost>-Abteilung)? Also ich will *.meinedomain.de auf /home/meinedomain/*/www umleiten und blick mit der Apache-Syntax nicht durch.

        Vielen Dank im Voraus!

        Kommentar

        Lädt...
        X