Probelm mit .htaccess bzw. Mod_rewrite

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

  • Probelm mit .htaccess bzw. Mod_rewrite

    Hallo, ich habe einen dynamischen LInk und möchte gerne die Endung des Links mit mod_rewrite abändern. Leider klappt es aber nicht.

    "beipiel.de/datei.php?a=1&b=2"

    soll ungefähr das ergeben:

    "beipiel.de/datei/1/2/"

    In der .htaccess steht:

    RewriteEngine on
    Options +FollowSymlinks
    RewriteBase /

    RewriteCond %{REQUEST_URI} datei/(.*)/(.*)/$
    RewriteRule datei/(.*)/(.*)/$ /datei.php?a=$1&b=$2


    In welchem Ordner muss sich die .htaccess befinden ?
    Ich nutze Xampp und die datei.php befindet sich im htdocs Ordner.

    Muss die datei.php in der .htaccess wie ein Link eingebunden werden,
    also absolut oder relativ ?
    Also würde es auch so gehen:

    RewriteCond %{REQUEST_URI} http://localhost/datei/(.*)/(.*)/$
    RewriteRule datei/(.*)/(.*)/$ /http://localhost/datei.php?a=$1&b=$2

    Darf die .htaccess Datei die Endung .txt haben ?

    Wäre super wenn sich hier jemand damit auskennt. Habe schon soviele Seiten besucht zu dieseem Thema aber bei mir hat es bisher nicht geklappt.
    Zuletzt geändert von veil; 06.07.2010, 13:13.

  • #2
    Ist leider das falsche Forum. Ich verschieb es mal.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo,

      Code-Tags für den htaccess-Code würden die Lesbarkeit deines Beitrags stark verbessern.

      Ich habe den Verdacht (korrigier mich ggf. bitte), dass du der Ansicht bist, dieses Rewriting würde deine Links umwandeln und schön machen. Das ist aber nicht so. Es leitet nur die Anfrage vom Browser so um, dass du z. B. viele URLs mit einem einzigen Script verarbeiten kannst. In deinem Beispiel leitet es eine Anfrage mit der URL /datei/1/2/ an das Script /datei.php weiter und gibt diesem Script per GET noch ein paar Parameter mit.

      Damit der Browser diese schöne URL aber erstmal aufruft, musst du ihm die in Form eines Links mitteilen. Die Seite, in der dieser Link untergebracht ist, muss daher z. B.
      HTML-Code:
      <a href="/datei/1/2/">...</a>
      enthalten. Wenn dort dagegen bereits
      HTML-Code:
      <a href="/datei.php?a=1&b=2">...</a>
      drin steht, ruft der Browser das auch so auf und mod_rewrite hat gar nichts zu tun.

      Kurz gesagt: du musst dich selbst darum kümmern, deine URLs schön zu machen, mod_rewrite übersetzt sie nur wieder zurück.

      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


      • #4
        Ich möchte eine Suchabfrage ausführen und in der Browserleiste wird das dann immer so dargestellt:

        "http://localhost/ordner/Suche.php?a=...5&submit=suche"

        Jetzt möchte ich am liebsten, dass es so dargestellt wird:

        "http://localhost/ordner/Suche/wert1/...inden/25/suche"

        oder so ähnlich, hauptsache der .PHP Endung ist weg.

        Wie mache ich sowas ?

        Kommentar


        • #5
          Zitat von veil Beitrag anzeigen
          Wie mache ich sowas ?
          Hast du mal meinen Beitrag gelesen? Es wird immer so in der Adressleiste stehen, wie du es auch im href-Attribut auslieferst – daran wird auch mod_rewrite nichts ändern.

          Also: bau zuerst die Links um.
          [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


          • #6
            Links habe ich eigentlich gar nicht. Nur die Abfragen in der Datenbank mit MYSQL. Dann wird das automatisch so angezeigt. Da weiss ich jetzt nicht was ich daran ändern muss. Oder geht das gar nicht ?

            Kommentar


            • #7
              Stell mal dein Formular von
              HTML-Code:
              method="get"
              auf
              HTML-Code:
              method="post"
              um.
              [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


              • #8
                Mit POST funktioniert meine datensatznavigation nicht mehr, daher kann ich nur GET verwenden. Hast Du ne Ahnung wo man ein brauchbares Skript zum Entfernen der .php Endung findet ?

                Kommentar


                • #9
                  Willst du jetzt doch nur die Endung wegbekommen? Ich dachte, es geht um die GET-Parameter? Nenn das Script einfach index.php und setz das action-Attribut auf das Verzeichnis, wo es drin liegt:

                  Script: projektordner/foo/bar/suche/index.php
                  ActionURL: http://example.com/foo/bar/suche/
                  [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


                  • #10
                    Danke, aber das klappt bei mir nicht.
                    Ich möchte gerne alle Dateien ohne Endung haben.
                    Irgendwie müsste das gehen.

                    Kommentar


                    • #11
                      Dann erzeuge die href- bzw. action-Attribute eben ohne Dateierweiterung und nutze mod_rewrite, um sie sozusagen wieder dranzuhängen.
                      [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


                      • #12
                        ich gebs auf

                        Kommentar

                        Lädt...
                        X