Announcement

Collapse
No announcement yet.

Problem mit htaccess und GET-Variablen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit htaccess und GET-Variablen

    Hallo zusammen,

    ich habe folgendes Problem:

    ich möchte GET-Variablen in der htaccess an die index.php übergeben. der Formularteil sieht so aus:

    HTML Code:
    <form action="searchresults/" method="GET">
            <div id="searchfield">
                <input type="text" name="q" value="" id="search" placeholder="Suchbegriff">
                <button id="button_search"></button>
            </div>
        </form>
    in der htaccess möchte ich jetzt den Parameter q an die index.php übergeben, was ich mir so dachte:

    Code:
    RewriteRule ^searchresults/?([-a-zA-Z0-9]*)$         index.php?&q=$1
    Neben dem Parameter "q" kommt je nach Bedarf der parameter "site" noch mit dazu.

    Wie mache ich ich das?

    Gruß Nevada

  • #2
    http://www.drweb.de/magazin/php-und-...zeichnisnamen/
    Christian

    Comment


    • #3
      Hallo Christian,

      danke für Deine Nachricht. Das habe ich schon probiert, der Parameter wird auch übergeben. Allerdings wird danach vor alle Links immer searchresults/ angefügt

      aus dem Link: www.domain.de/kontakt

      wird dann: www.domain.de/searchresults/kontakt

      So sieht der Eintrag in der htaccess aus:

      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^([-a-zA-Z0-9]*)(.*)$ index.php?q=$1 [NC,QSA,L]

      Gruss Nevada
      Zuletzt editiert von Nevada208; 21.05.2015, 07:16.

      Comment


      • #4
        Versuch
        ..../index.php&q=....
        Christian

        Comment


        • #5
          Hab jetzt:

          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^([-a-zA-Z0-9]*)(.*)$ index.php&q=$1

          leitet mich gleich auf die Fehlerseite

          In der Browser Adresszeile steht:

          http://192.168.1.5/shop/searchresults/?q=suchwort

          Comment


          • #6
            Das funktioniert soweit mit dem Parameter q

            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ index.php?q=$1 [QSA]

            ABER danach hat immer noch jeder Link ein searchresults/ davor

            Comment


            • #7
              Hallo,

              das hängt damit zusammen, wie absolute und relative Links interpretiert werden! Du gibst in deinem Formular als Ziel ein Verzeichnis "searchresults/" an. Dies sollte - egal wohin der Apache das intern redirected auch so in der Adsresszeile stehen. Sind jetzt im angezeigten Dokument Links in der Form <a href="kontakt"> vorhanden, dann sind dies RELATIVE Links in Abhängigkeit zum aktuellen Pfad - und der ist searchresults/! Wenn du also über Redirect-Mechanismen eine neue Verzeichnisstruktur aufbaust, musst du auch alle weiterführenden Links daran anpassen, also z.B. durch : <a href="/kontakt"> wieder absolut in die Root-Ebene springen oder durch <a href="../kontakt"> eine Ebene höher.
              Alternativ kannst du natürlich auch das Verzeichnis "searchresults/" durch die Datei "searchresults" ersetzen.

              Gruß Falk
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment


              • #8
                Hallo Falk,

                danke für Deine Antwort. Wenn ich das so mache <a href="/kontakt"> hab ich das Problem das ich eine Ebene zu hoch lande, aus

                http://192.168.1.5/shop/kontakt

                wird dann

                http://192.168.1.5/kontakt

                sollte ich mir dafür besser einen virtuellen Host einrichten?

                Gruß Nevada

                Comment


                • #9
                  Hallo,
                  Originally posted by Nevada208 View Post
                  ...sollte ich mir dafür besser einen virtuellen Host einrichten?
                  Das ist nicht notwendig, solange du deine Verzeichnissstruktur kennst und die zugehörigen Regeln absoluter und relativer Pfad-Angaben einhältst. Wenn dein absolutes Verzeichnis "/shop/kontakt" ist, dann musst du als absolute Angabe eben auch <a href="/shop/kontakt" > verwenden! Oder du weisst dass du vom aktuellen Pfad aus EINE Ebene nach oben musst, dann geht es relativ mit <a href="../kontakt" >
                  Eine andere Möglichkeit wäre die Angabe einer Adressbasis im HTML-Header mit z.B.: <base href="http://www.deine-seite.de/shop/" />
                  Damit beziehen sich dann alle Adressangaben auf diese Basis und die Angabe href="/kontakt" würde zu http://www.deine-seite.de/shop/kontakt vervollständigt werden.

                  Gruß Falk
                  Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                  Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                  Comment

                  Working...
                  X