Pot: PHP Dateien wie Ordner aufrufen

Moin,

ich habe da so ein kleines Problem. Es gibt Webseiten (wie zB xobox.de), da werden Seiten etwa so aufgerufen: http://www.xobox.de/username/

ich nehme aber nicht an, dass fuer jeden User ein eigener Ordner, mit jeweils den Scripten, welche die Userangaben aus der Datenbank auslesen und ausgeben, sondern eher auf eine PHP Datei etwa wie xobox.de/user.php?id=USERID "weitergeleitet" wird.

Falls dies wirklich so waere, wie geht das ganze?
Habe beim Suchen nichts brauchbares gefunden.

Bin fuer jede hilfreiche Antwort dankbar.

Mit freundlichen Gruessen,
Pot

  1. Hallo Pot.

    ich habe da so ein kleines Problem. Es gibt Webseiten (wie zB xobox.de), da werden Seiten etwa so aufgerufen: http://www.xobox.de/username/

    […] wie geht das ganze?

    Zwei geläufige Methoden werden in diesem Thread genannt.

    Einen schönen Samstag noch.

    Gruß, Mathias

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    debian/rules
    1. Danke dir.

      Gute Nacht
      Pot

    2. Hi,

      also das Grundprinzip habe ich eigentlich schon verstanden.
      Nur funktioniert das bei mir überhaupt nicht..

      Hier mal ein ganz simples Beispiel, welches ich ausprobierte:

      .htaccess:
      RewriteEngine On
      RewriteRule /haha/ ./test.php

      test.php:
      bliblo

      Aufruf:
      meineseite.de/haha/

      Ausgabe:
      404 Not Found

      Habe aber vorher in der httpd.conf noch das Modul geladen
      LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

      Apache neugestartet
      /etc/init.d/apache2 restart

      phpinfo angeschaut und folgendes gefunden:
      Loaded Modules core mod_log_config [..] mod_rewrite

      Finde da einfach den Fehler nicht!

      1. Hallo Pot.

        .htaccess:
        RewriteEngine On
        RewriteRule /haha/ ./test.php

        test.php:
        bliblo

        Aufruf:
        meineseite.de/haha/

        Ausgabe:
        404 Not Found

        Nun solltest du einmal einen Blick in dein Rewritelog werfen. Du aktivierst es wie folgt:

        RewriteLogLevel 9 # höchste Stufe  
        RewriteLog /pfad/zu/einer/von/www-data/beschreibbaren/logdatei
        

        Dies schreibst du in deinen VHost-Container. Eine mögliche Ausgabe könnte nun wie folgt aussehen:

        127.0.0.1 - - [05/Nov/2006:01:57:03 +0100] [dev/sid#81a7438][rid#85cdb48/initial] (3) [perdir /www/dev.noctus.net/] add path info postfix: /www/dev.noctus.net/haha -> /www/dev.noctus.net/haha/  
        127\.0.0.1 - - [05/Nov/2006:01:57:03 +0100] [dev/sid#81a7438][rid#85cdb48/initial] (3) [perdir /www/dev.noctus.net/] strip per-dir prefix: /www/dev.noctus.net/haha/ -> haha/  
        127\.0.0.1 - - [05/Nov/2006:01:57:03 +0100] [dev/sid#81a7438][rid#85cdb48/initial] (3) [perdir /www/dev.noctus.net/] applying pattern '/haha/' to uri 'haha/'  
        127\.0.0.1 - - [05/Nov/2006:01:57:03 +0100] [dev/sid#81a7438][rid#85cdb48/initial] (1) [perdir /www/dev.noctus.net/] pass through /www/dev.noctus.net/haha
        

        Hier siehst du bei näherer Betrachtung, dass „/haha/“ ungleich „haha/“ ist. Schlussfolgerst du nun also, den ersten Slash zu entfernen, funktioniert es dagegen wie gewünscht. (Unter Umständen solltest du jedoch „^haha/“ verwenden, um sicher zu gehen, dass das Muster auch nur dann trifft, wenn „haha/“ am Anfang steht.)

        Einen schönen Sonntag noch.

        Gruß, Mathias

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        debian/rules
        1. Hi

          Hier siehst du bei näherer Betrachtung, dass „/haha/“ ungleich „haha/“ ist. Schlussfolgerst du nun also, den ersten Slash zu entfernen, funktioniert es dagegen wie gewünscht. (Unter Umständen solltest du jedoch „^haha/“ verwenden, um sicher zu gehen, dass das Muster auch nur dann trifft, wenn „haha/“ am Anfang steht.)

          Danke fuer deine Bemuehungen.
          Leider hat das ganze auch nicht funktioniert. Nicht einmal die Log bring ich hin.

          Wenn ich das richtig verstanden habe (.htaccess):
          [code lang=apache]
          RewriteEngine On
          RewriteLogLevel 9
          RewriteLog /var/www/remo/modrewrite/rewrite.log
          RewriteRule ^haha/ ./test.php
          [code]

          hab der Datei rewrite.log dem Benutzer und Gruppe www-data hinzugefuegt und Lese- und Schreibrechte gegeben.

          Nach erneutem ausfuehren von meineseite.de/haha/ kam wieder ein 404 Not Found.
          Ausserdem hat die rewrite.log immernoch keinen Inhalt!

          Mit freundlichen Grüssen,
          Pot

          1. hi,

            Wenn ich das richtig verstanden habe (.htaccess):
            RewriteEngine On
            RewriteLogLevel 9
            RewriteLog /var/www/remo/modrewrite/rewrite.log

            Nein, noch nicht richtig verstanden - RewriteLogLevel und RewriteLog kannst du nicht in .htaccess verwenden, sondern nur im Kontext server config oder virtual host.

            Sich für sowas einen lokalen Testserver aufzusetzen, auf dem man dann volle Kontrolle hat, ist eine gute Idee.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Moin,

              Nein, noch nicht richtig verstanden - RewriteLogLevel und RewriteLog kannst du nicht in .htaccess verwenden, sondern nur im Kontext server config oder virtual host.

              Also wenn ich es jetzt richtig verstanden habe:

                
              LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so  
              #AddModule mod_rewrite.c  
                
              <IfModule mod_rewrite.c>  
              RewriteLogLevel 9  
              RewriteLog /var/www/modrewrite/rewrite.log  
              </IfModule>  
              
              

              In der /etc/apache2/httpd.conf

              Sich für sowas einen lokalen Testserver aufzusetzen, auf dem man dann volle Kontrolle hat, ist eine gute Idee.

              Hab ich bereits.

              Pot

              1. Was ich merkwuerdig finde ist, wenn ich zB aufrufen moechte:
                meineseite.de/test.php

                erreiche ich das selbe Ergebnis wie meineseite.de/test/
                nur dass er Bilder und CSS Styles vergisst (was anscheinend ein typischer mod_rewrite Fehler ist http://www.modrewrite.de/foren/ftopic82.html

                1. hi,

                  Was ich merkwuerdig finde ist, wenn ich zB aufrufen moechte:
                  meineseite.de/test.php

                  erreiche ich das selbe Ergebnis wie meineseite.de/test/

                  Ist vielleicht über Options MultiViews aktiviert?

                  gruß,
                  wahsaga

                  --
                  /voodoo.css:
                  #GeorgeWBush { position:absolute; bottom:-6ft; }