[PHP5] Keine ahnung wie man das nennt, urlsuche?

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

  • [PHP5] Keine ahnung wie man das nennt, urlsuche?

    Hallo,

    bei wikipedia kann man ganz einfach einen Begriff suchen:
    http://de.wikipedia.org/wiki/Begriff

    Aber ich glaube nicht, dass die Jungs und Mädels für jeden Begriff einen Ordner oder so haben.

    Wie kann man das einrichten das wenn jemand z.b. auf die Url meineseite.de/begriffe/abc geht das mein Script dann anspringt und sofort nach dem Begriff abc sucht?

    Geht das?

    MfG,
    Ever.

  • #2
    Das geht am einfachsten mit dem Apache-Modul mod_rewrite

    http://www.modrewrite.de/mod_rewrite...eispiele.phtml

    Kommentar


    • #3
      Original geschrieben von Cheadle
      Das geht am einfachsten mit dem Apache-Modul mod_rewrite

      http://www.modrewrite.de/mod_rewrite...eispiele.phtml
      Danke,

      also ich hab jetzt momentan das hier:

      RewriteEngine on
      RewriteRule ^([\w]+)/([\w]+)$ suche.php?action=$1&pr=$2

      Scheint aber nicht zu gehen. Wo liegt der Fehler? Kann mir einer helfen?

      Edit: Also ich geb in die URL ein http://url.de/begriff

      Kommentar


      • #4
        Möchte man vom Modul ModRewrite unabhängig sein, kann man das URL Rewriting auch mit PHP selbst erledigen. Mach dich mal in Sachen PATH_INFO, Request Uri und ähnlichem schlau.

        Grüße
        Nieder mit der Camel Case-Konvention

        Kommentar


        • #5
          Original geschrieben von Griecherus
          Möchte man vom Modul ModRewrite unabhängig sein, kann man das URL Rewriting auch mit PHP selbst erledigen. Mach dich mal in Sachen PATH_INFO, Request Uri und ähnlichem schlau.

          Grüße
          Du weißt schon das normalerweise sowas hier kommt:

          Objekt nicht gefunden!

          Der angeforderte URL konnte auf dem Server nicht gefunden werden. Sofern Sie den URL manuell eingegeben haben, überprüfen Sie bitte die Schreibweise und versuchen Sie es erneut.

          Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
          Error 404

          ???

          Ich kapier nicht wie man das ändern kann...

          Kommentar


          • #6
            Du weißt schon das normalerweise sowas hier kommt:
            404 Fehlermeldung. Dafür kannst du aber auch eigene Dateien verwenden. Und die wiederum holen den Parameter aus der Url.

            Das ist eine weitere Möglichkeit das ganze zu realisieren. Allerdings eher suboptimal und eher für Strato und konsorten.

            Kannst aber auch einfach eine Datei "wiki" benutzen. Über htacces sorgst du dafür, dass die Datei von PHP geparst wird. usw. Aber imho auch eher suboptimal.

            Ich würds über modrewrite machen.

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              404 Fehlermeldung. Dafür kannst du aber auch eigene Dateien verwenden. Und die wiederum holen den Parameter aus der Url.

              Das ist eine weitere Möglichkeit das ganze zu realisieren. Allerdings eher suboptimal und eher für Strato und konsorten.

              Kannst aber auch einfach eine Datei "wiki" benutzen. Über htacces sorgst du dafür, dass die Datei von PHP geparst wird. usw. Aber imho auch eher suboptimal.

              Ich würds über modrewrite machen.
              Ja, ich würde es auch gern über rewrite machen!
              Aber es will leider nicht, meinen Code von da oben hab ich immernoch.

              Url.de/ordner/begriff bzw url.de/begriff

              funktioniert immernoch nich. ModRewrite ist aktiviert:

              apache2handler
              Apache Version Apache/2.2.4 (Linux/SUSE)
              Loaded Modules [...] mod_rewrite

              .htaccess:

              RewriteEngine on

              RewriteCond %{HTTP_USER_AGENT} ^.*Whacker.*$ [OR]
              RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
              RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
              RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
              RewriteCond %{HTTP_USER_AGENT} ^.*FileHound.*$ [OR]
              RewriteCond %{HTTP_USER_AGENT} ^.*TurnitinBot.*$ [OR]
              RewriteCond %{HTTP_USER_AGENT} ^.*JoBo.*$ [OR]
              RewriteCond %{HTTP_USER_AGENT} ^.*adressendeutschland.*$
              RewriteRule ^.* - [F]
              RewriteRule ^([^/]+).*$ /index.php?action=$1
              RewriteRule ^([\w]+)/([\w]+)$ index.php?action=$1&sub=$2

              Hab das gefühl er würde die htaccess einfach nicht erkennen!

              Kommentar


              • #8
                Wenn du noch am Testen bist, dann lass doch erstmal die ganzen useragents weg, die stören doch nur.

                RewriteRule ^.* - [F]
                Was versuchst du damit zu bewirken?

                RewriteRule ^([^/]+).*$ /index.php?action=$1
                und hiermit?

                RewriteRule ^([\w]+)/([\w]+)$ index.php?action=$1⊂=$2
                Die [] sind übeflüssig, den / solltest du escapen, danach sollte es eigentlich gut sein, wobei ich mich über die verwendung von ⊂ im Query-Sting wundere. da sollte wohl eher ein Ampersand und ein name hin.

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  Die [] sind übeflüssig, den / solltest du escapen, danach sollte es eigentlich gut sein, wobei ich mich über die verwendung von ⊂ im Query-Sting wundere. da sollte wohl eher ein Ampersand und ein name hin. [/B]
                  Dieses C kam durchs kopieren... also jetzt steht da nur noch:

                  RewriteEngine on
                  RewriteRule ^(^\/+).*$ /index.php?action=$1

                  Funktioniert aber immernoch nicht... irgendwie.

                  Kommentar


                  • #10
                    Und was soll das bewirken? Kannst du das in Worte fassen?

                    BTW: Weil du ja meintest, dass du glaubst, dass die htaccess gar nicht verwendet wird, verwende mal ne ganz globale Regel wie .* um das zu überprüfen.

                    *move* nach Konfig.

                    Kommentar


                    • #11
                      Original geschrieben von TobiaZ
                      Und was soll das bewirken? Kannst du das in Worte fassen?
                      bei wikipedia kann man ganz einfach einen Begriff suchen:
                      http://de.wikipedia.org/wiki/Begriff

                      und das will ich auch gern also:

                      http://meineseite.de/begriff

                      soll auf

                      http://meineseite.de/suche.php?action=begriff

                      BTW: Weil du ja meintest, dass du glaubst, dass die htaccess gar nicht verwendet wird, verwende mal ne ganz globale Regel wie .* um das zu überprüfen.

                      *move* nach Konfig. [/B]
                      also passieren tut da nix.

                      Kommentar


                      • #12
                        bei wikipedia kann man ganz einfach einen Begriff suchen:
                        http://de.wikipedia.org/wiki/Begriff

                        und das will ich auch gern also:
                        http://meineseite.de/begriff
                        soll auf
                        http://meineseite.de/suche.php?action=begriff
                        Ja, das sagtest du bereits. Du solltest mir eigentlich in eigenen Worten wiedergeben, was die o.g. Regel in deinen Augen bewirkt. Einfach zu Verständnis. Also noch mal.

                        PS: Erwarte bitte keinen fertigen code. ich möchte dich nur auf die Lösung stoßen.
                        OffTopic:
                        Meineseite.de gehört dir sicher nicht. Dann schalte bitte wenigstens die verlinkung aus.
                        also passieren tut da nix.
                        Dann solltest du das zunächst mal überprüfen. Darfst du überhaupt eigene htaccess-Dateien verwenden? usw.

                        Es macht keinen Sinn, hier an Regeln rumzudoktern, wenn nichtmal die grundvoraussetzungen gegeben sind.

                        Kommentar


                        • #13
                          .htaccess speicher die mal in einem neuen ordner OHNE index.php/index.html etc

                          Code:
                          Options +Indexes
                          wenn du jetzt eine listenansicht in diesem ordner sehen kannst .. dann funkt htaccess ... aber es ist auch möglich das mod_rewrite ausgeschaltet oder gar nicht installiert ist ;-)

                          PHP-Code:
                          phpinfo(); 
                          im browser öffnen und mal nach Loaded Modules suchen .. dort sollte dann mod_rewrite stehen ;-)
                          Gruß
                          Uzu

                          private Homepage

                          Kommentar


                          • #14
                            @Everdream
                            Schreib einfach mal
                            Code:
                            RewriteEngine on
                            RewriteRule ^.*$ http://www.google.de [R=301]
                            und schau ob du bei Google landest. Wenn nein, dann wird die htaccess nicht interpretiert
                            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                            Kommentar


                            • #15
                              Mir fällt gerade ein das HTAccess laufen MUSS... benutze ja Htacces login bei meinem pma :P

                              Also ich habs nich so mit HTAccess aber das schien mir viel mit Regex zutun zu haben und damit kenn ich mich kaum aus, ich kann mir das einfach nicht merken -.-

                              Naja...

                              RewriteEngine on
                              RewriteRule ^suche$ suche.php

                              So geht es!
                              Aber wie kann ich da erstmal den begriff in eine Variable speichern?

                              Also ^ ist anfang des Begriffes und $ das ende. Soviel weiß ich schon und danach die Datei auf die der Begriff offensichtlich weitergeleitet wird... nur wie speicher in den Begriff in eine Varibale und setze die dann hinten dran? Und wie kann ich zwischen ^ und $ was zufälliges stehen lassen... kleiner Tipp wär nicht schlecht :S

                              Edit... tut mir leid das mit dem speichern hab ich rausgekriegt.

                              RewriteEngine on
                              RewriteRule ^(news)$ index.php?action=$1

                              sooo... Mal gucken das andre krieg ich auch noch hin! Danke für eure Hilfe und Hinweise!

                              Edit2: habs
                              RewriteRule ^(\w+)$ index.php?action=$1

                              Zwar nicht so perfekt aber es wird ausreichen!

                              ^ = anfang
                              () = zwischen den klammern wird gespeichert
                              \w = sucht alphanumerische zeichen
                              $ = Ende

                              wird weitergeleitet auf index.php?action=begriff

                              Danke nochmal.
                              Zuletzt geändert von Everdream; 16.05.2008, 21:12.

                              Kommentar

                              Lädt...
                              X