[LOKAL] Problem mit mod_rewrite

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

  • [LOKAL] Problem mit mod_rewrite

    Ich will mein V9 von RealScripts mit mod_rewirte bestücken. Nur will ichs erstma lokal testen etc. und das will irgendwie nicht. Ich habe das mit Leutz alles durchgeguckt aber das will einfach nicht. Das LoadModule von mod_rewrite ist ohne #, im IfModule wird der Engine gestartet und ne Log erstellt und im <Directory... hab ichs AllowOverride auf All stehen. Hier habt ihr mal meine .htacces und drunter meine rewrite.log (RewriteLog + RewriteLogLevel 9)

    Code:
    RewriteEngine On
    RewriteRule ^/news/(.*)/(.*)$ index.php?page=news?id=$1&start=$2 
    RewriteRule ^news/(.*)/(.*)/$ index.php?page=news?id=$1&start=$2 
    RewriteRule ^/news/(.*)/(.*)/$ index.php?page=news?id=$1&start=$2
    Code:
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b3ec8/initial] (2) init rewrite engine with requested uri /v9/
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b3ec8/initial] (1) pass through /v9/
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b5fb8/subreq] (2) init rewrite engine with requested uri /v9/index.php
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b5fb8/subreq] (1) pass through /v9/index.php
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b5a18/initial/redir#1] (2) init rewrite engine with requested uri /php/php.exe/v9/index.php
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b5a18/initial/redir#1] (1) pass through /php/php.exe/v9/index.php
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b9fc8/subreq] (2) init rewrite engine with requested uri /v9/index.php
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b9fc8/subreq] (1) pass through /v9/index.php
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (2) init rewrite engine with requested uri /v9/style.css
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (1) pass through /v9/style.css
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (2) init rewrite engine with requested uri /v9/code.js
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (1) pass through /v9/code.js
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (2) init rewrite engine with requested uri /v9/images/header.gif
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (1) pass through /v9/images/header.gif
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (2) init rewrite engine with requested uri /v9/images/search.gif
    127.0.0.1 - - [06/Jun/2004:13:03:40 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (1) pass through /v9/images/search.gif
    127.0.0.1 - - [06/Jun/2004:13:03:41 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (2) init rewrite engine with requested uri /v9/news/1/1/
    127.0.0.1 - - [06/Jun/2004:13:03:41 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (1) pass through /v9/news/1/1/
    127.0.0.1 - - [06/Jun/2004:13:03:43 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (2) init rewrite engine with requested uri /v9/news/1/1/
    127.0.0.1 - - [06/Jun/2004:13:03:43 +0200] [localhost/sid#26bbf8][rid#6b7fc0/initial] (1) pass through /v9/news/1/1/
    wenn ich php_info() ausführ, steht da nix von mod_rewrite...

    // Edit:
    Also wenn ich dann /v9/news/1/1 aufrufe bekomm ich ne 404er Seite...
    Zuletzt geändert von freq.9; 07.06.2004, 06:58.
    Admin of RealScripts

  • #2
    Kennt sich hierbei denn keiner aus? Ich habe in 3 Foren gefragt und imt QNet bei #php.de aber keiner kann mir helfen Meine neue Page soll damit laufen, nur wenn ichs nicht lokal testen kann bringt mir das nicht viel :|
    Admin of RealScripts

    Kommentar


    • #3
      Original geschrieben von freq.9
      Ich habe in 3 Foren gefragt
      und überall mit dem gleichen text ...?

      da steht ja nicht mal drin, welche URLs du damit umschreiben willst ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Deine Rewrite-Rules sind ziemlich eigenartig.
        Den / am Anfang würde ich weglassen, und der nicht-zwingende / am Ende kann über ein ? direkt dahinter auch abgefangen werden. Ich würde folgendes in die .htaccess schreiben:
        Code:
        RewriteEngine On
        RewriteRule ^news/(.*)/(.*)/?$ index.php?page=news?id=$1&start=$2
        Und die .htaccess-Datei muss natürlich in den Ordner v9 (also der Ordner, wo die index.php drin ist, die du per Rewrite-Rule ansprechen möchtest).

        Übrigens sollte in der 404-Seite auch drinstehen, welche Datei nicht gefunden wurde - und daran kannst du schon erkennen, ob dein Rewrite überhaupt ausgeührt wurde, und wenn ja, wonach dann gesucht wurde.
        hopka.net!

        Kommentar


        • #5
          die 3 Varianten waren tests. Hätte es gefunzt hätt ich ja nurnoch einen rausselektieren müssen.
          Ich werd deinen Vorschlag an einer .htaccess mal testen.

          // Edit:
          es kommt:
          Not Found

          The requested URL /v9/news/40/ was not found on this server.
          Apache/2.0.49 (Win32) Server at localhost Port 80

          btw: habe die .htaccess nochmal gekürzt:
          Code:
          RewriteEngine On
          RewriteRule ^news/(.*)/?$ index.php?page=news?id=$1
          // Edit zum 2ten:
          das wird eingetragen in die rewrite.log, wenn ich auf /v9/news/40/ geh...
          127.0.0.1 - - [07/Jun/2004:19:28:58 +0200] [localhost/sid#26bce8][rid#6b79e0/initial] (2) init rewrite engine with requested uri /v9/news/40/
          127.0.0.1 - - [07/Jun/2004:19:28:58 +0200] [localhost/sid#26bce8][rid#6b79e0/initial] (1) pass through /v9/news/40/
          Zuletzt geändert von freq.9; 07.06.2004, 19:29.
          Admin of RealScripts

          Kommentar


          • #6
            war da nicht mal was mit absoluten Pfadangaben
            (ich dachte ich hätte da mal was in meinen grauen Zellen gespeichert)
            [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

            [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

            [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
            (from here)

            Kommentar


            • #7
              Original geschrieben von Meillo
              war da nicht mal was mit absoluten Pfadangaben
              (ich dachte ich hätte da mal was in meinen grauen Zellen gespeichert)
              soweit ich informiert bin, muss da nirgends mit absoluten pfaden gearbeitet werden, oder was meinst du?
              Admin of RealScripts

              Kommentar


              • #8
                ich sag's immer wieder, zum posten von logfile-auszügen bitte nicht [quote] verwenden, weil das das zitieren unnötig erschwert! bitte [code] nehmen.


                also, mal schauen ...

                127.0.0.1 - - [07/Jun/2004:19:28:58 +0200] [localhost/sid#26bce8][rid#6b79e0/initial] (2) init rewrite engine with requested uri /v9/news/40/
                127.0.0.1 - - [07/Jun/2004:19:28:58 +0200] [localhost/sid#26bce8][rid#6b79e0/initial] (1) pass through /v9/news/40/

                was mir an dieser stelle gar nicht gefällt, ist das "pass through".
                das heißt auf deutsch ja nicht viel anderes, als das der URI ohne weitere bearbeitung durchgereicht wurde. ist aber auch recht logisch, weil deine regel einfach nicht zutrifft.


                angeforderter URI ist: /v9/news/40/
                deine regel: RewriteRule ^news/(.*)/?$ index.php?page=news?id=$1

                nein, der angeforderte URI fängt nicht mit "news/..." an - deine regel fordert dies aber explizit.

                also entweder das führende /v9/ auch noch mit in die regel aufnehmen, oder (besser) es als RewriteBase definieren.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Vielleicht hab ich da auch was durcheinander gebracht ...
                  *meillo ist manchmal etwas confused*
                  [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                  [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                  [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                  (from here)

                  Kommentar


                  • #10
                    Original geschrieben von wahsaga
                    nein, der angeforderte URI fängt nicht mit "news/..." an - deine regel fordert dies aber explizit.
                    Naja, wenn die RewriteRules aber in einer .htaccess-Datei sind, und diese im Ordner v9 liegt, dann braucht man keine absoluten Pfade.

                    http://httpd.apache.org/docs/mod/mod...ml#RewriteBase
                    [...]RewriteRule can be used in per-directory config files (.htaccess). There it will act locally, i.e., the local directory prefix is stripped at this stage of processing and your rewriting rules act only on the remainder. At the end it is automatically added back to the path.
                    RTFM
                    hopka.net!

                    Kommentar


                    • #11
                      Original geschrieben von Hopka
                      Naja, wenn die RewriteRules aber in einer .htaccess-Datei sind, [B]und diese im Ordner v9 liegt, dann braucht man keine absoluten Pfade.
                      eben das scheint sie aber nicht zu tun.

                      das rewrite-log sagt ja ausdrücklich, dass versucht wird, den URI /v9/news/40/ zu behandeln,
                      Code:
                      init rewrite engine [b]with requested uri /v9/news/40/[/b]
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Hm, ich hab bei mir lokal jetzt auch mal rewrite-log angemacht, und dort steht auch immer der komplette pfad drin.

                        Bei mir steht allerdings auch sehr viel mehr drin, wenn ich RewriteLogLevel auf 9 setze. Außerdem steht dann bei mir irgendwas von per-dir drin. Und bei pass-through schreibt er die Datei rein, die er letztendlich an den Client schickt.

                        Allerdings hab ich auch nicht Apache 2 sondern 1.3

                        Der Fehler scheint irgendwo anders zu liegen - Schätzungsweise in der Apache-Konfiguration.
                        hopka.net!

                        Kommentar


                        • #13
                          naja aber weiterbringen tut mich das ganze nicht. es funktioniert ja immernoch nicht :!
                          Admin of RealScripts

                          Kommentar


                          • #14
                            Original geschrieben von freq.9
                            naja aber weiterbringen tut mich das ganze nicht. es funktioniert ja immernoch nicht :!
                            hast du denn jetzt mal versucht, unsere tipss umzusetzen? (insb. RewriteBase zu verwenden)

                            und wenn ja,
                            • wie sah dein regelwerk dann aus?
                            • in welchem verzeichnis liegt die .htaccess?
                            • mit welchem URI versuchst du zuzugreifen?
                            • was sagt das log?
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Ups hab wohl eure Beiträge hier auf der 2ten Seite übersehen :!

                              Also hier mal was ich so alles hab:

                              httpd.conf
                              Code:
                              ...
                              LoadModule rewrite_module modules/mod_rewrite.so
                              ...
                              DocumentRoot "C:/Server/www"
                              ...
                              <Directory />
                                  Options FollowSymLinks
                                  AllowOverride All
                              </Directory>
                              ...
                              <IfModule mod_rewrite.c>
                              	RewriteEngine On
                              	RewriteLog "C:\Server\Apache2\logs\rewrite.log"
                              	RewriteLogLevel 9
                              </IfModule>
                              ...
                              .htaccess (C:\Server\www\v9\)
                              Code:
                              RewriteEngine On
                              RewriteBase /v9
                              RewriteRule ^news/(.*)/?$ index.php?page=news?id=$1
                              index.php (C:\Server\www\v9\)

                              Ich versuche auf: http://localhost/v9/news/40/ zuzugreifen. Also sollte ja eigentlich die index.php?page=news?id=40 aufgerufen werden...

                              rewrite.log
                              Code:
                              127.0.0.1 - - [10/Jun/2004:14:37:24 +0200] [localhost/sid#26bce8][rid#6b3fd0/initial] (2) init rewrite engine with requested uri /v9/news/40/
                              127.0.0.1 - - [10/Jun/2004:14:37:24 +0200] [localhost/sid#26bce8][rid#6b3fd0/initial] (1) pass through /v9/news/40/
                              Admin of RealScripts

                              Kommentar

                              Lädt...
                              X