[htaccess] modReqrite, RegEx und GET-Paramter

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

  • [htaccess] modReqrite, RegEx und GET-Paramter

    Hallo

    Ich habe ein Problem. Ich nutze folgende .htaccess Datei zur Umleitung (Auszug):

    Code:
    RewriteRule aboutme$ articles.php?module=view&article=xyz
    
    # articles.php
    RewriteRule articles/category/(\d+)-(.+)$ articles.php?module=category&category=$1
    RewriteRule articles/article/(\d+)-(.+)$ articles.php?module=view&article=$1
    Auf meinem XAMPP-Testserver lokal läuft das wunderbar. Aber wenn ich das ganze auf mein Webspace hochschiebe, dann werden bei den RegEx-Umleitungen keinerlei GET-Parameter übergeben.

    Bei der ersten Umleitung ohne RegEx (aboutme) funktioniert alles tiptop und die GET-Parameter werden mitgesendet. Die Umleitung auf das richige PHP-Script funktioniert, nur eben ohne GET-Parameter.

    Kann mir jemand sagen was ich falsch mache? Oder liegt das an meinem Webspace bzw dessen Konfiguation?

    Wäre euch über Hilfe sehr dankbar .

  • #2
    Hallo,

    überprüf als erstes die Pfade. Das ist der häufigste Grund, warum lokale Systeme auf einem Webspace plötzlich nicht mehr arbeiten.

    Hast du RewriteEngine auf On gesetzt?

    Falls es nicht hilft, bitte die kmplette .htaccess posten.

    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
      Ja die RewriteEngine habe ich natürlich auf ON gestellt. Falsche Pfade können es nicht sein, denn die Pfade an und für sich werden immer korrekt aufgerufen. Nur die GET-Parameter werden den Pfaden nicht mitgegeben.

      Die ganze htaccess sieht so aus:

      Code:
      RewriteEngine On
      RewriteBase /home/www/web51/html/v2
      
      # navigation
      RewriteRule newswall$ newswall.php
      RewriteRule aboutme$ articles.php?module=view&article=xyz
      RewriteRule articles$ articles.php
      RewriteRule guestbook$ guestbook.php
      RewriteRule links$ links.php
      RewriteRule impressum$ impressum.php
      RewriteRule register$ register.php
      
      # gallery.php
      RewriteRule gallery$ gallery.php
      RewriteRule gallery/album/(\d+)-(.+)$ gallery.php?module=album&album=$1
      RewriteRule gallery/picture/(.+)$ gallery.php?module=getpicture&path=$1
      RewriteRule gallery/thumb/(\d+)/(.+)$ gallery.php?module=getthumb&path=$2&size=$1
      
      # articles.php
      RewriteRule articles/category/(\d+)-(.+)$ articles.php?module=category&category=$1
      RewriteRule articles/article/(\d+)-(.+)$ articles.php?module=view&article=$1
      
      #links.php
      RewriteRule links/redirect/(\d+)$ links.php?module=redirect&link=$1

      Kommentar


      • #4
        Okay, und $_GET ist nach der Umleitung komplett leer? Bitte mal mit var_dump prüfen.
        [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
          Ja ist es leider .

          Code:
          array(0) { }

          Kommentar


          • #6
            Hast du eine phpinfo-Seite auf dem Webspace? (Ein Script, in dem nur das steht:
            PHP-Code:
            <?php phpinfo(); ?>
            )
            [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
              Hab ich ja, kannst es dir ja mal anschauen:

              phpinfo()

              Kommentar


              • #8
                Ich vermute, es liegt daran, dass dein PHP auf CGI läuft und nicht wie üblich als Apache Modul oder zumindest als FastCGI. Findest du die übergebenen Get-Parameter in $_SERVER["REQUEST_URI"] oder sind die dort auch weg?

                Edit: Nee, das ist es nicht. Bei http://timesplinter.ch/info.php?foo=bar kommen sie auch an. Der Server ist wirklich komisch konfiguriert und gibt die Get-Parameter beim Rewriting nicht weiter.

                Edit2: Versuch mal, an jede Regel ein [R] anzuhängen. Ist zwar ne blöde Lösung, sollte aber erstmal helfen, bis dein Provider sich zu dem Problem geäußert hat.

                Beispiel:
                Code:
                # navigation
                RewriteRule newswall$ newswall.php [R]
                RewriteRule aboutme$ articles.php?module=view&article=xyz [R]
                RewriteRule articles$ articles.php [R]
                ...
                Zuletzt geändert von AmicaNoctis; 02.01.2011, 19:07.
                [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
                  Das nützt leider auch nichts . Aber ich werde in dem Fall den Provider mal anschreiben, der weiss sicher Rat, wenn es sich wirklich um ein Problem von ihm handelt .

                  Danke auf jeden Fall für deine Hilfe .

                  Kommentar

                  Lädt...
                  X