mod_rewrite Ordner simulieren

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

  • mod_rewrite Ordner simulieren

    Servus,
    ich hab nen kleinen Server auf 1&1 und versuche mich gerade vergeblichst an einem mod_rewrite.

    auf einem Server habe ich mein Vorhaben schone erfolgreich folgendermaßen gelöst:

    HTML-Code:
    RewriteEngine On 
    RewriteRule ^([\w]+)$ index.php?site=$1 
    RewriteRule ^([\w]+)/([\w]+)$ index.php?site=$1&sub=$2
    aber dieser dusselige 1&1 Server macht das nicht mit.

    Die 1. Ebene habe ich schon so gelöst:
    HTML-Code:
    RewriteRule ^(.*)/$ /index.php?site=$1
    Nun mein Problem. Ich will jeweils mit Ending-Slash und ohne haben. Um Tippfehler zu vermeiden. Andererseits bekomme ich es für eine weitere unterebene absolut nicht hin. Alá /var1/var2/ => index.php?site=var1&sub=var2

    Hoffe ihr könnt mir helfen
    Pierre Voit ( Freelancer seit 2004 )

  • #2
    Hallo,

    das reicht doch auch. Die originale Adresse findest du in $_SERVER["REQUEST_URI"], egal wieviele Pfadebenen sie hatte. Damit ersparst du dir, das per mod_rewrite einzeln abzuhandeln.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Du meinst quasi das ich die unterbenen dann raus explode?
      Pierre Voit ( Freelancer seit 2004 )

      Kommentar


      • #4
        Zitat von bloodyorchid Beitrag anzeigen
        Du meinst quasi das ich die unterbenen dann raus explode?
        Genau. Und für mod_rewrite brauchst du nur noch
        Code:
        RewriteRule !^index\.php - [C]
        RewriteRule ^.*$ index.php [L]
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          HTML-Code:
          RewriteRule !^index\.php - [C]
          RewriteRule ^.*$ index.php [L]
          = Error 500 internal server error :P

          Das ist ja was mich so piekst an 1&1

          EDIT:
          Das Script von oben würde durchaus reichen. Da ich nur bis eine weitere Unterebene gehe. Aber neihein ^_^
          Pierre Voit ( Freelancer seit 2004 )

          Kommentar


          • #6
            Code:
            RewriteEngine On
            hast du aber gesetzt, oder? Unterstützt der Webspace dort überhaupt mod_rewrite?
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Klar hab ich es gesetzt. So doof bin ich ja nun auch wieder nich xD
              Und ja er unterstützt es. Sonst würde es ja mit
              HTML-Code:
              RewriteRule ^(.*)/$ /index.php?site=$1
              nicht klappen.
              Pierre Voit ( Freelancer seit 2004 )

              Kommentar


              • #8
                URL entlinkt

                Zitat von bloodyorchid Beitrag anzeigen
                Klar hab ich es gesetzt. So doof bin ich ja nun auch wieder nich xD
                Und ja er unterstützt es. Sonst würde es ja mit
                HTML-Code:
                RewriteRule ^(.*)/$ /index.php?site=$1
                nicht klappen.
                Dass das funktioniert ist aber nur Glück. Ohne das offensichtlich gesetzte Umleitungsmaximum, würde das sofort scheitern. Trotzdem ergibt es keinen Sinn:

                http://example.com/abc/def/ghi/ wird zu
                http://example.com/index.php?site=abc/def/ghi/ wird zu
                http://example.com/index.php?site=index.php?site=abc/def/ghi/ wird zu
                http://example.com/index.php?site=index.php?site=index.php?site=abc/def/ghi/ wird zu


                bis das Umleitungsmaximum sagt „nu is Schluss!“
                Zuletzt geändert von AmicaNoctis; 25.05.2010, 20:11.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Da magst du recht haben. 1&1 beschreibt selbst in der Hilfe diesen Weg:

                  Statt http://foo.bar/user.php?id=baz hätte ich gerne etwas wie http://foo.bar/user/baz

                  .htaccess
                  HTML-Code:
                  Options -MultiViews
                  RewriteEngine on
                  RewriteCond %{REQUEST_URI} user/(.*)$
                  RewriteRule user/(.*)$ /user.php?id=$1
                  Pierre Voit ( Freelancer seit 2004 )

                  Kommentar

                  Lädt...
                  X