Mod_rewrite regex

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

  • Mod_rewrite regex

    Morgen zusammen,

    Ich wollte gerade nen server umzug machen, leider spielt mod_rewrite nicht so ganz mit oder ich hab nen fehler gemacht.

    Lokal funtzt das hier:

    RewriteEngine on



    RewriteRule (.*)/(.*)\.html$ /demo/$1.php?ID=$2
    RewriteRule (.*).html$ $1.php [C,E=WasHTML:yes]

    Auf dem server spuckt das ganze nur 404 aus. Auch ein xyz.html, wird nicht gefunden obwohl xyl.php vorhanden ist? hat jemand eine idee?

    Vielen dank!
    Möglich ist alles!

  • #2
    wenn du das ganze system 1:1 gespiegelt hast, dann würde ich mal darauf schließen, dass die Rewrite nicht (richtig) läuft. das hatte ich auch schon bei einem hoster.

    Kommentar


    • #3
      FollowSymlinks sind an?
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        @Tobiaz

        Sorry hab mich missverständlich ausgedrückt. Ich bin nur mit einer domain auf einen anderen webserver/provider umgezogen.
        Im moment fällt mir auch nix anderes ein als das Mod_rewrite off wäre?

        @Abraxax

        Ja ich hab auch das hier probiert:
        RewriteEngine on
        Options +FollowSymLinks
        RewriteRule (.*).html$ $1.php [C,E=WasHTML:yes]


        Hab jetzt gerade ne mail an den provider geschickt mal kucken was die sagen.


        DAnke zusammen:-)
        Gruss
        Möglich ist alles!

        Kommentar


        • #5
          Also ich bin nicht der riesen-regex-Experte aber müsste diese Zeile

          RewriteRule (.*).html$ $1.php [C,E=WasHTML:yes]

          nicht so gehen:

          RewriteRule [COLOR=red]^[/COLOR](.*).html$ [COLOR=red]%1[/COLOR].php [C,E=WasHTML:yes]

          ?

          Wenn mod_rewrite off wäre, gäbe es einen 500 und nicht einen 404!
          Zuletzt geändert von pekka; 18.01.2004, 14:26.

          Kommentar


          • #6
            Danke pekka, mit dem Hütchen hast du eigentlich recht, ich habs aber auch schon mit und ohne probiert. Das man % anstatt von $ nehmen kann war mir neu. Habs auch probiert, geht trotzdem nich.
            Wenn Mod_rewrite off ist kann ich mir keinen 500er = read timeout, vorstellen. Denn die url zu test.html gibts einfach nich auf dem server, also gibts auch eine 404. Das hat mit mod_rewrite nich so viel zu tun, oder=?

            Ärgerlich ich hab immer noch keine antwort von denen( Domainfactory ):-/

            Gruss timepoint5
            Möglich ist alles!

            Kommentar


            • #7
              OK, ich wußte nicht dass man $ nehmen kann

              Wenn mod_rewrite nicht aktiviert ist, müßte die Zeile

              RewriteEngine on

              einen 500 = Internal Server Error ergeben. Ich schätze dass entweder die .htaccess gar nicht oder nur eingeschränkt ausgelesen wird oder aber die rewrite-Zeile nicht greift!

              Kommentar


              • #8
                Pekka Du bist ein ein master:-) Da hast Du natürlich völlig recht.
                500 wäre ja klar!
                Die regex greift auf jeden fall, ich habs auch gerade noch mal auf einem andern server getestet, ausserdem ists ja auch syntaktisch richtig( mit hut).

                Das .htaccess dateien ausgelesen werden kann man zuminderst mit mod_auth an anderer stelle sehen. Ist halt nur ärgerlich weil ohne das die ganze app nich läuft.
                Möglich ist alles!

                Kommentar


                • #9
                  So erstes problem gelöst: richtig wäre das hier;:


                  RewriteCond %{REQUEST_URI} ^(.*)\.html$
                  RewriteRule .*\.html %1.php [C,E=WasHTML:yes]


                  Das funktioniert dann auch mit unterverzeichnissen, und nicht nur im root.
                  Leider ist damit mein zweites prob noch nicht gelöst:

                  Ich bräuchte noch eine Rule die mir urls vom format:

                  domain.tld/demo/$var1/$var2.html

                  um schreibt zu:

                  domain.tld/demo/$var1.php?z=$var2


                  Folgendens funktioniert leider nich, ich habs auch schon ohne die erste RewriteCond probiert.


                  RewriteEngine on
                  RewriteCond %{REQUEST_URI} ^(.*)/(.*)\.html$
                  RewriteRule (.*)/(.*)\.html$ /demo/%1.php?ID=%2

                  RewriteCond %{REQUEST_URI} ^(.*)\.html$
                  RewriteRule .*\.html %1.php [C,E=WasHTML:yes]

                  Hat jemand vielleicht noch eine idee zur zweiten?
                  Vielen Dank!
                  Möglich ist alles!

                  Kommentar


                  • #10
                    Bitte schön wers braucht:


                    RewriteEngine on

                    RewriteCond %{REQUEST_URI} ^(.*)\.html$ #läuft auch in unterverzeichnissen
                    RewriteRule .*\.html %1.php [C,E=WasHTML:yes]


                    RewriteCond %{REQUEST_URI} ^/demo/(.*)/([^/]*)\.html$
                    RewriteRule .* /demo/%1.php?c=%2 [L]
                    Möglich ist alles!

                    Kommentar

                    Lädt...
                    X