tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
610
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    marioe marioe ist offline Grünschnabel
    Registriert seit
    Aug 2011
    Beiträge
    1
    Hallo, bin neu hier

    Hab ein Problem bezüglich mod_rewrite will folgende URL http://www.mein-server.com/index.php?file=Startseite in http://www.mein-server.com/Startseite.html umschreiben lassen.
    Verwende folgende Regel:

    RewriteEngine On
    RewriteRule ^([^/]*)\.html$ /index.php?file=$1 [L]

    Funktioniert leider überhaupt nicht, ist so als wäre keine Regel vorhanden.
    Würde mich freuen wenn Ihr mir helfen könntet.
    Hab auch schon gesucht, leider im Forum wie auch durch googlen nichts funktionierendes gefunden...

    MFG marioe
     

  2. #2
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Ein kleines praktisches Beispiel (schon fast ein Mini-Tutorial ).
    Wir gehen davon aus dass das Script "rewritetest.php" heisst und diesem die Variable "site" angehängt wird.

    Man lege eine Datei mit dem Namen ".htaccess" an und packe folgenden Code rein:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    ### rewriterule for rewritetest.php
    # Falls der Scriptname nicht als Indexdatei in der Serverkonfiguration eingetragen ist,
    # wird es hier nachgeholt.
    DirectoryIndex rewritetest.php
     
    # Falls jemand eine Datei oder ein Verzeichnis aufruft welches nicht existiert,
    # wird er einfach auf das Hauptverzeichnis umgeleitet.
    # Da zuvor ja die Indexdatei festgelegt wurde, wird also auf das Script umgeleitet.
    # Den Rest erledigt dann das Script (es wird also "Startseite" angezeigt).
    ErrorDocument 404 /
     
    # Erstmal muss die RewriteEngine gestartet werden. *Zündschlüssel rumdreh*
    RewriteEngine On
     
    # Jeder Dateiname mit der Endung ".html" wird an das Script übergeben.
    # Hierbei ergibt der Dateiname (ohne Endung) den Wert für die ans Script angehänge Variable "site".
    RewriteRule ^(.*)\.html$ rewritetest.php?site=$1
    ###

    Dann lege man eine Datei mit dem Namen "rewritetest.php" an und füge folgenden Code ein:
    PHP-Code:
    <?php
    /* Wurde die Variable "site" ans Script übergeben? */
    if(isset($_GET["site"])) {

        
    /* Dann prüfe welchen Wert die Variable "site" bekommen hat. */
        
    switch($_GET["site"]) {

            
    /* Hat die Variable "site" den Wert "one" bekommen (aufgerufen mit "one.html"), dann zeige "Seite eins" an. */
            
    case "one":   echo "Seite eins<br>";
                          echo 
    "<a href='index.html'>zur&uuml;ck zur Startseite...</a><br>";
                          break;

            
    /* Hat die Variable "site" den Wert "two" bekommen (aufgerufen mit "two.html"), dann zeige "Seite zwei" an. */
            
    case "two":   echo "Seite zwei<br>";
                          echo 
    "<a href='index.html'>zur&uuml;ck zur Startseite...</a><br>";
                          break;

            
    /* Hat die Variable "site" den Wert "index" bekommen (aufgerufen mit "index.html"), dann zeige "Startseite" an. */
            
    case "index": echo "Startseite<br>";
                          echo 
    "<a href='one.html'>eins...</a><br>";
                          echo 
    "<a href='two.html'>zwei...</a><br>";
                          break;

            
    /* Hat die Variable "site" einen ungültigen Wert bekommen, dann leite zur Startseite (index.html) um. */
            
    default: header("Location: http://".$_SERVER["HTTP_HOST"]."/index.html");
        }
    } else {
        
    /* Wurde keine Variable oder eine ungültige Variable an das Script übergeben, dann leite auf die Startseite (index.html) um. */
        
    header("Location: http://".$_SERVER["HTTP_HOST"]."/index.html");
    }
    ?>
    Aufgerufen wird die Seite dann mit "index.html", "one.html" oder "two.html".
    Je nach dem wie man die Seite aufgerufen hat, bekommt man dann die "Startseite", "Seite eins" oder "Seite zwei" angezeigt.
    Ruft man die Seite mit einem falschen Namen auf, z.b. mit "blablub.html", wird man auf "Startseite" umgeleitet.

    Ach, was rede ich lange, es ist ja ein einsatzfertiges Beispiel..... also einfach mal selber testen.
    Der Rest sollte sich eh aus den Kommentarzeilen ergeben.

    Gruss Dr Dau
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

Ähnliche Themen

  1. mod_rewrite funktioniert nicht
    Von Identität im Forum Hosting & Webserver
    Antworten: 5
    Letzter Beitrag: 20.10.08, 18:05
  2. simples mod_rewrite-Tutorial funktioniert nicht
    Von sipoh im Forum Hosting & Webserver
    Antworten: 9
    Letzter Beitrag: 19.04.08, 21:32
  3. Mod_rewrite funktioniert leider nicht.
    Von forsterm im Forum Hosting & Webserver
    Antworten: 6
    Letzter Beitrag: 14.02.06, 18:57
  4. mod_rewrite funktioniert nicht.
    Von goddi im Forum PHP
    Antworten: 3
    Letzter Beitrag: 11.09.04, 04:57
  5. mod_rewrite funktioniert lokal nicht mehr :(
    Von Transmitter im Forum Hosting & Webserver
    Antworten: 7
    Letzter Beitrag: 20.02.03, 14:47

Stichworte