ModRewrite

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

  • ModRewrite

    Hallo,

    ich möchte einen Shop mit ModRewrite suchmaschinenfreundlicher gestalten.

    Im Prinzip sehr einfach, wenn die URL`s alle zum Beispiel so lauten:
    (1) http://www.domain.de/php/ soll dann umgeleitet werden auf (2) http://www.domain.de/index.php?thema=php. Aber meine Domains sind halt nicht wie unter (1) beschrieben, sondern haben alle die Form von (2).

    Ist es möglich die URL`s automatisch wie unter (1) beschrieben zu formatieren und im Browser anzuzeigen?

    Beste Grüße

    Björn Weichel
    Zuletzt geändert von wahsaga; 18.05.2006, 11:23.
    » http://www.htaccess-generator.com

  • #2
    Re: ModRewrite

    Zum x-ten verflixten Mal: Bitte verlinkt bei Beispielen keine Domains, die euch nicht gehören!
    (Oder nutzt gleich example.com/.net/.org)

    Ist es möglich die URL`s automatisch wie unter (1) beschrieben zu formatieren und im Browser anzuzeigen?
    Und jetzt noch mal im Klartext und verständlicher bitte:

    Was genau möchtest du erreichen?

    Du hast in deinen Dokumenten Links in der Form
    http://www.example.org/index.php?thema=php,
    möchtest aber, dass der Nutzer in seinem Browser
    http://www.example.org/php/
    anklickt, und dann intern weitergeleitet wird?


    Dann musst du zunächst mal deine Links im HTML-Code so ändern/anspassen, dass sie auf http://www.example.org/php/ zielen.
    Das ist aber nicht Aufgabe von mod_rewrite, sondern die des Seitenerstellers - also deine.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Dann musst du zunächst mal deine Links im HTML-Code so ändern/anspassen, dass sie auf http://www.example.org/php/ zielen.
      Genau das wollte ich von ModRewrite erledigen lassen, wenn es geht. Also laut deinem Kommentar gehe ich davon aus das es nicht funktioniert, sonder ich die URL`s von Hand umschreiben muss, richtig?
      » http://www.htaccess-generator.com

      Kommentar


      • #4
        Wow, du kannst ja richtig zwischen den Zeilen lesen. Das ist 1:1 das, was wahsaga im Klartext geschrieben hat.

        Kommentar


        • #5
          Richtig. Mod-Rewrite schreibt HTTP-Requests um, keine Webseiten oder Scripte.
          Das mußt du schon selbst machen.
          Ein ordentlicher Editor mit ausgewachsenem (regulären) Find+Replace kann das auf nur drei Klicks verkürzen.
          Frontpage macht dabei alles kaputt.

          Kommentar


          • #6
            Ich arbeite mit Templates und habe nun das Problem, dass bei einer Umleitung die Bilder nicht mehr gefunden werden. Die Templates und Bilder liegen in dem Unterordner /templates. Muss/ Kann ich den Unterordner Templates von der Umleitung ausschließen, sodass die Bilder wieder gefunden und angezeigt werden?

            PHP-Code:
            RewriteEngine on 
            RewriteRule 
            (.*)/$ /test/index.php?warengrupp=$
            » http://www.htaccess-generator.com

            Kommentar


            • #7
              Ja, sollte sich mit einr RewriteCond machen lassen, die zunächst überprüft, ob der REQUEST_URI (o.ä.) mit /templates beginnt.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Ich habe jetzt mal folgendes geschrieben:

                PHP-Code:
                RewriteEngine on
                RewriteCond 
                %{THE_REQUEST} !templates(.*)$
                RewriteRule (.*)/$ index.php?warengrupp=$
                Wenn ich nun http://www.example.org/DVD-R/ eingebe, schreibt er bei den Images http://www.example.org/DVD-R/templates/images/bild.jpg. Es sollte aber eigentlich heißen http://www.example.org/templates/images/bild.jpg. Was ist an dem o. g. Script falsch?

                Habe eine Testdatei angelegt und dort meine Datei mit /templates getestet. Sobald ich dort /templates eingebe, wir die Anfrage übersprungen - so soll es ja auch sein - jedoch werden die url`s innerhalb meines Script nicht von RewriteCond berücksichtigt. Also all meine Bilder werden nicht gefunden da die URL falsch angegeben wird. Muss ich jetzt überall in meinen Script http://www.example.org/ vor die <img> Tags schreiben damit die Dateien gefunden werden oder ist in meinem Script oben ein Fehler?

                Danke für Eure Hilfe!
                » http://www.htaccess-generator.com

                Kommentar


                • #9
                  schreibt er
                  Wer ist ER? Meinst du das was im Quelltext steht? Hast noch nicht verstanden, wozu das Modul da ist, oder?

                  Kommentar


                  • #10
                    Der Browser ergänzt relative Adressen natürlich in Bezug auf den Pfad, unter dem er das HTML-Dokument angefordert hat.
                    Wenn er die Ressource von /DVD-R angefordert hat, und nur die relative Bildadresse "templates/..." findet - dann wird das natürlich zu /DVD-R/templates/... ergänzt.

                    Wenn du die Bildadresse nur relativ angibst, musst du natürlich einen führenden Slash verwenden, wenn du auf die Domainwurzel verweisen willst.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      habe jetzt alle links entsprechend umgebaut... jetzt habe ich jedoch das programm das auch der pfad zu meinem admintool, also /admin/ umgeleitet word zu index.php?warengrupp=admin, da ich in meiner .htaccess folgendes stehen habe:

                      PHP-Code:
                      RewriteEngine on 
                      RewriteRule 
                      ^(.*)\/$ index.php?warengrupp=$1
                      RewriteRule 
                      ^(.*).php$ $1.php 
                      ist es irgendwie möglich den unterordner /admin/ so zu belassen wie er war? Ich habe dann auch noch Probleme mit dem Suchwort "DVD+R", anscheinend weil das "+" im URL-String für andere Zwecke verwendet wird. Wie läßt sich jedoch das "+" für die ModRewrite Weiterleitung verwenden?
                      » http://www.htaccess-generator.com

                      Kommentar


                      • #12
                        schau dir mal die RewriteCondition(s) an.

                        Das + sollte für morRewrite eigentlich kein Prob sein. aber eher im querystring.

                        Kommentar


                        • #13
                          wie kann ich das script mit modrewrite und dem querystring zum laufen bekommen? habe bereits urlencode/ decode angewendet, jedoch werden die seite mit variabeln die + / etc. beinhalten nicht angezeigt. ich wüßte nicht wie ich ansonsten den querystring noch bearbeiten könnte. danke für eure hilfe!
                          » http://www.htaccess-generator.com

                          Kommentar


                          • #14
                            Gib mal ein Beispiel, das nicht funktioniert.
                            Und deine Rewrite-Settings dazu.

                            Kommentar


                            • #15
                              Also ich lese die Navigation aus der Datenbank aus und bearbeite anschließend den String mit:

                              PHP-Code:
                              $row['warengrupp'] = rawurlencode($row['warengrupp']); 
                              Die Link in der Navigation sind alle zum Beispiel so angelegt:
                              PHP-Code:
                              <a href="http://www.example.com/DVD+R/">DVD+R</a
                              Nach einem Aufruf wird folgende ModRewrite Funktion verarbeitet:
                              PHP-Code:
                              RewriteEngine on 
                              RewriteRule 
                              ^admin\/$ admin/index.php
                              RewriteRule 
                              ^domainadmin\/$ domainadmin/index.php
                              RewriteRule 
                              ^(.*)\/$ index.php?warengrupp=$1
                              RewriteRule 
                              ^(.*).php$ $1.php 
                              Bevor dann die Seite ausgegeben wird, also die Artikel aus der Datenbank gelesen werden, wird der Query-String wieder mit:

                              PHP-Code:
                              $warengrupp rawurldecode($warengrupp); 
                              zurück gesetzt. Ich hoffe das hilft weiter! Danke!
                              » http://www.htaccess-generator.com

                              Kommentar

                              Lädt...
                              X