curryMan: Mod Rewrite - warum funktioniert es nicht?

Nabend,

ich habe eine URL wie z.B. http://www.selfhtml.org/test/meinordner/html/

Die htaccess sieht so aus

RewriteEngine on  
RewriteRule ^meinordner/(.*)$ /test.php?pfad=$1

Die Datei test.php liegt im Ordner test/meinordner/

Ich habe getestet, ob eine Regel überhaupt greift mit und es war erfolgreich

RewriteRule ^ http://www.google.com [R,L]

Ich habe eigentlich sämtliche Varianten durch, aber keine funktioniert

Beispiel:

RewriteEngine on  
RewriteRule ^/(.*)$ /test.php?pfad=$1
RewriteEngine on  
RewriteRule ^test/meinordner/(.*)$ /test.php?pfad=$1

Ich verstehe nicht, wo der Fehler liegt, kann mir jemand evtl. helfen?

Gruß
curryMan

  1. Hallo,

    ich habe eine URL wie z.B. http://www.selfhtml.org/test/meinordner/html/

    für Beispiele möchte man bitte keine real existierenden Domainnamen verwenden (höchstens die eigenen). Dafür gibt es extra die Beispiel-Domains example.com, example.net oder example.org.

    Ich verstehe nicht, wo der Fehler liegt, kann mir jemand evtl. helfen?

    Dazu solltest du erstmal etwas deutlicher beschreiben, was du genau erreichen möchtest. Ich blick nämlich im Moment auch nicht durch, was du eigentlich hast oder nicht hast, geschweige denn was du gern hättest.

    Ciao,
     Martin

    --
    Vater Staat bringt uns noch alle unter Mutter Erde.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hi,

      wenn ich diese URL aufrufe http://www.example.com/test/meinordner/html/ erhalte ich eine 404 Seite.

      Anhand der Mod Rewrite Regel

      RewriteEngine on  
      RewriteRule ^meinordner/(.*)$ /test.php?pfad=$1
      

      soll diese URL http://www.example.com/test/meinordner/html/ im "Hintergrund" in diese URL
      umgeschrieben werden http://www.example.com/test/meinordner/test.php?pfad=html

      Die Seite http://www.example.com/test/meinordner/test.php existiert ja. Deswegen soll/müsste die URL http://www.example.com/test/meinordner/html/ ja auch erreichbar sein (wegen der Mod Rewrite Regel).

      Das ist aber nicht der Fall. Wie gesagt habe ich schon verschiedene Varianten probiert.

      Gruß
      curryMan

      1. Hallo,

        wenn ich diese URL aufrufe http://www.example.com/test/meinordner/html/ erhalte ich eine 404 Seite.

        Anhand der Mod Rewrite Regel

        RewriteEngine on

        RewriteRule ^meinordner/(.*)$ /test.php?pfad=$1

        
        >   
        > soll diese URL http://www.example.com/test/meinordner/html/ im "Hintergrund" in diese URL umgeschrieben werden http://www.example.com/test/meinordner/test.php?pfad=html  
          
        die Regel besagt aber etwas anderes: Nämlich dass nur URLs umgeschrieben werden, die mit meinordner/ beginnen und danach noch beliebig viele weitere Zeichen haben. Das trifft aber auf dein Beispiel nicht zu, also wird die Regel gar nicht angewendet, es findet folglich kein Rewriting statt.  
          
        Ciao,  
         Martin  
        
        -- 
        [Programmierer (m), seltener auch P~in (w)](http://community.de.selfhtml.org/zitatesammlung/zitat110):  
        Irdische, i.a. humanoide Lebensform, die in einem komplizierten biochemischen Prozess Kaffee, Cola und Pizza in maschinenlesbaren Programmcode umwandelt.  
        P~ bilden gelegentlich mit ihresgleichen kleine Gruppen, sogenannte Communities, sind aber ansonsten meist scheue Einzelgänger.  
        P~ sind vorwiegend nachtaktiv und ohne technische Hilfsmittel nur eingeschränkt lebensfähig.  
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        
  2. Tach!

    ich habe eine URL wie z.B. http://www.selfhtml.org/test/meinordner/html/

    Mir wäre es lieber, wenn du diesen Domainnamen nicht hast. Du könntest dir zum Beispiel example.org nehmen.

    Die htaccess sieht so aus

    RewriteEngine on

    RewriteRule ^meinordner/(.*)$ /test.php?pfad=$1

    
    >   
    > Die Datei test.php liegt im Ordner test/meinordner/  
      
    Wo liegt die .htaccess? Und wenn die test.php im Unterordner liegt, warum gibst du dann das DocumentRoot an?  
      
    
    > Ich habe eigentlich sämtliche Varianten durch, aber keine funktioniert  
      
    Du hast die Varianten anscheinend ohne RewriteLog/-Level probiert (zum Aktivieren wird Adminberechtigung benötigt). Das würde dir zeigen, was intern abläuft.  
      
      
    dedlfix.
    
  3. Hallo und vielen Dank für eure Unterstützung!

    folgende Regel hat funktioniert

    RewriteRule ^(.*)$ test.php?pfad=$1

    Danach ergab sich ein neues Problem. Bei einer URL wie
    http://www.example.com/test/meinordner/html/formulare/buttons/

    War der Wert von $_GET['pfad'] - "test.php", anstatt wie erwartet "html/formulare/buttons/"

    Die Lösung dafür habe ich hier gefunden http://www.cosni.de/fragen/4fe32945e8c02/mod_rewrite-urls-mit--slash-erzeugen-404-rewriterule-greift-nicht

    Dieser Code hat funktioniert

    RewriteCond %{REQUEST_FILENAME} !-f  
    RewriteCond %{REQUEST_FILENAME} !-d  
    RewriteRule ^(.*)$ test.php?pfad=$1
    

    Gruß
    curryMan