Jeena Paradies: mod_rewrite ist an bei mir? Ich finde es selbst nicht raus

Hallo,

Ich versuche schon krampfhaft über 1,5 Wochen mod_rewrite bei mir zum laufen zu bringen aber es will einfach nicht klappen. Ich habe in der .htaccess welche im DocumentRoot liegt folgendes eingetragen:

--------------- .htaccess ---------------------------------

Einstellungen fuer alternative Inhalte

AddType application/x-type-map var
AddType application/x-httpd-php .php
AddType application/x-httpd-php .html

Options Indexes FollowSymLinks MultiViews
DirectoryIndex index.html index.php index.var

$basedir für alle Dateien

php_value auto_prepend_file /home/vhosts/SEITE/var/www/html/prepend.php

RewriteEngine on
RewriteRule ^(de|en)/news/([0-9]*)? /$1/news?id=$2

-----------------------------------------------------------

Und ich habe immer einen 404er bekommen wenn ich die Datei so /de/news/9 oder so /en/news/9 aufgerufen habe. In beiden Verzeichnissen ist die Datei drinn, und ich kann sie per /de/news?id=9 bzw /en/news?id=9 problemlos aufrufen. Die anderen Sachen wie mit der prepend_file oder AddType funktionieren alle wunderbar.

Ich habe dann meinen Provider angeschrieben und gefragt ob mod_rewrite überhaupt geladen ist und er antwortete mir:

--------------- E-Mail vom Provider -----------------------
Hi!
Ja mod_rewrite ist gesetzt
-------------------------------
<VirtualHost 81.223.254.2:80>
ServerName      SEITE.net
ServerAdmin     zwiebelkuchen@gmx.de
DocumentRoot    /home/vhosts/SEITE.net/var/www/html
CustomLog       /home/vhosts/SEITE.net/var/log/access_log
combined
ErrorLog        /home/vhosts/SEITE.net/var/log/error_log
Alias           /webstat/
/home/vhosts/SEITE.net/var/www/htstat/
        <IfModule mod_suexec.c>
        SuexecUserGroup SEITE sscusr
        </IfModule>
<IfModule mod_userdir.c>
    UserDir /home/vhosts/SEITE.net/home/*/html
</IfModule>
        <IfModule mod_ssl.c>
            SSLEngine off
        </IfModule>

include /etc/httpd/conf/vhosts/SEITE.net
</VirtualHost>

<Directory /home/vhosts/worldheritage-forum.net>
    AllowOverride All
</Directory>

-----------------------------------------------------------

Trotzdem bekomme ich einen 404er. Also ich kenn mich ja nicht so aus, vielleicht kann mir einer sagen woran man das sieht dass mod_rewrite an ist, und vielleicht hat ja auch jemand einen Lösungsansatz für mein Problem.

Grüße
Jeena Paradies

--
Logo drucken welches sich auf einer dunklen Seite befindet
http://jeenaparadies.de/weblog/2004/august/print-logo/
Spammer jetzt beim Arbeitsamt
http://jeenaparadies.de/artikel/arbeitsamt-spammer/
  1. hi,

    RewriteEngine on
    RewriteRule ^(de|en)/news/([0-9]*)? /$1/news?id=$2

    Und ich habe immer einen 404er bekommen wenn ich die Datei so /de/news/9 oder so /en/news/9 aufgerufen habe.

    deine rule will de oder en am anfang des request-URIs stehen haben - der fängt aber mit /de oder /en an.

    entweder nimmst du den führenden slash noch mit in die regel auf, oder du definierst ihn (vor der regel) als basis,

    RewriteBase /

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hallo,

      deine rule will de oder en am anfang des request-URIs stehen haben - der fängt aber mit /de oder /en an.
      entweder nimmst du den führenden slash noch mit in die regel auf, oder du definierst ihn (vor der regel) als basis,
      RewriteBase /

      Danke für deine schnelle Antwort. Ich habe folgendes ausprobiert:

      RewriteEngine on
      RewriteRule ^/(de|en)/news/([0-9]*)? /$1/news?id=$2
      --------------
      RewriteBase /
      RewriteEngine on
      RewriteRule ^(de|en)/news/([0-9]*)? /$1/news?id=$2
      --------------
      RewriteEngine on
      RewriteBase /
      RewriteRule ^(de|en)/news/([0-9]*)? /$1/news?id=$2

      Und nichts von dreien hat was genutzt immer noch ein 404er als ob er die Datei 9 im Verzeichniss /de/news/ suchen würde die natürlich nicht da ist.

      Grüße
      Jeena Paradies

      --
      Logo drucken welches sich auf einer dunklen Seite befindet
      http://jeenaparadies.de/weblog/2004/august/print-logo/
      Spammer jetzt beim Arbeitsamt
      http://jeenaparadies.de/artikel/arbeitsamt-spammer/
      1. Hallo Jeena.

        RewriteRule ^/(de|en)/news/([0-9]*)? /$1/news?id=$2

        Sollte am Ende nicht besser ein '$' statt eines '?' stehen? Und sollte statt des '*' dort nicht besser ein '+' stehen? Nur so ein paar Ideen, vielleicht hilft's ja.

        Freundschaft!
        Siechfred

        1. Hallo,

          RewriteRule ^/(de|en)/news/([0-9]*)? /$1/news?id=$2
          Sollte am Ende nicht besser ein '$' statt eines '?' stehen? Und sollte statt des '*' dort nicht besser ein '+' stehen? Nur so ein paar Ideen, vielleicht hilft's ja.

          Nein, leider hat das auch nicht den gewünschten Erfolg gebracht, ich habe ausprobiert:

          RewriteRule ^/(de|en)/news/([0-9]+)$ /$1/news?id=$2

          RewriteRule ^/(de|en)/news/([0-9]*)$ /$1/news?id=$2

          RewriteRule ^/(de|en)/news/([0-9]+)? /$1/news?id=$2

          Und nichts hat geholfen immer noch ein 404er.

          Grüße
          Jeena Paradies

          --
          Logo drucken welches sich auf einer dunklen Seite befindet
          http://jeenaparadies.de/weblog/2004/august/print-logo/
          Spammer jetzt beim Arbeitsamt
          http://jeenaparadies.de/artikel/arbeitsamt-spammer/
          1. Hallo Jeena Paradies,

            hilft Dir möglicherweise AcceptPathInfo weiter?

            Gruß aus Berlin!
            eddi

            --
            Manchmal trifft es einen doch ganz unverhofft t86591:
            > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
            Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
            1. Hallo,

              hilft Dir möglicherweise AcceptPathInfo weiter?

              So hab das jetzt mal eingeschalten und auf jeden fall wird jetzt beim Aufruf von /de/news/9 Die Datei /de/news aufgerufen. Leider werden die Parameter nicht übergeben, die ich aber brauche um zu wissen welche News ich laden soll.

              Grüße
              Jeena Paradies

              --
              Logo drucken welches sich auf einer dunklen Seite befindet
              http://jeenaparadies.de/weblog/2004/august/print-logo/
              Spammer jetzt beim Arbeitsamt
              http://jeenaparadies.de/artikel/arbeitsamt-spammer/
              1. Hallo,

                welcher Scriptsprache bedienst Du Dich? Und - könntest Du einem mod_rewrite-Novice erklären, was Du mit der Umleitung von URL1 zu URL2 bezweckst? Danke.

                Gruß aus Berlin!
                eddi

                --
                Manchmal trifft es einen doch ganz unverhofft t86591:
                > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
                Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
                1. Hallo,

                  welcher Scriptsprache bedienst Du Dich? Und - könntest Du einem mod_rewrite-Novice erklären, was Du mit der Umleitung von URL1 zu URL2 bezweckst? Danke.

                  Bezwecken will ich damit dass die URL anstatt http://seite.de/de/news?id=9 so aussieht http://seite.de/de/news/9 das ist der ganze Zweck der Übung.

                  Ich benutze PHP, und könnte da zwar die PATH_INFO Variable nehmen und sie auslesen, aber jetzt ist das schon so geschrieben und ich hoffte dass mod_rewrite das macht. Auf meiner Seite funktioniert das ja auch prima. Da habe ich die URL

                  http://jeenaparadies.de/weblog/archiv.php?jahr=2004&monat=august&topic=obstsalat

                  in ein formschönes

                  http://jeenaparadies.de/weblog/2004/august/obstsalat/ umgewandelt was man sich erstens leichter merken kann und zweitens wie eine Filesystem Struktur aussieht und sich verhält. Man kann da nämlich einfach einen Teil abschneiden und kommt in "ein Verzeichnis höher" obwohl es gar keine Verzeichnisse gibt.

                  Grüße
                  Jeena Paradies

                  --
                  Logo drucken welches sich auf einer dunklen Seite befindet
                  http://jeenaparadies.de/weblog/2004/august/print-logo/
                  Spammer jetzt beim Arbeitsamt
                  http://jeenaparadies.de/artikel/arbeitsamt-spammer/
                  1. Hallo,

                    http://jeenaparadies.de/weblog/2004/august/obstsalat/ umgewandelt was man sich erstens leichter merken kann und zweitens wie eine Filesystem Struktur aussieht und sich verhält. Man kann da nämlich einfach einen Teil abschneiden und kommt in "ein Verzeichnis höher" obwohl es gar keine Verzeichnisse gibt.

                    Aha, ich verstehe. Das Kind ist also schon längst im Brunnen. Schade ;)

                    Gruß aus Berlin!
                    eddi

                    --
                    Manchmal trifft es einen doch ganz unverhofft t86591:
                    > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
                    Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
                  2. Hallo Jeena.

                    http://jeenaparadies.de/weblog/archiv.php?jahr=2004&monat=august&topic=obstsalat

                    Dann würde in deiner ursprünglichen RewriteRule aber ein .php fehlen:
                    -> RewriteRule ^/(de|en)/news/([0-9]+)$ /$1/news.php?id=$2

                    Freundschaft!
                    Siechfred

                    1. Hallo Siegfred,

                      Dann würde in deiner ursprünglichen RewriteRule aber ein .php fehlen:
                      -> RewriteRule ^/(de|en)/news/([0-9]+)$ /$1/news.php?id=$2

                      Nicht, wenn für die Datei folgendes gilt,

                      <Files news>
                        ForceType application/x-httpd-php
                      </Files>

                      oder PHP als Modul das xbithack On ist.

                      Gruß aus Berlin!
                      eddi

                      --
                      Manchmal trifft es einen doch ganz unverhofft t86591:
                      > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
                      Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
                      1. Hallo Eddi,

                        Dann würde in deiner ursprünglichen RewriteRule aber ein .php fehlen:
                        -> RewriteRule ^/(de|en)/news/([0-9]+)$ /$1/news.php?id=$2
                        Nicht, wenn für die Datei folgendes gilt,
                        [...]

                        Danke, wieder was gelernt.

                        Freundschaft!
                        Siechfred

                    2. Hallo,

                      http://jeenaparadies.de/weblog/archiv.php?jahr=2004&monat=august&topic=obstsalat

                      das ist die URL zu meinem Weblog.

                      Dann würde in deiner ursprünglichen RewriteRule aber ein .php fehlen:
                      -> RewriteRule ^/(de|en)/news/([0-9]+)$ /$1/news.php?id=$2

                      Vielleicht hast du es übersehen, aber weiter oben in der .htaccess steht:

                      AddType application/x-httpd-php .html
                      Options Indexes FollowSymLinks MultiViews

                      die news Datei heißt eigentlich news.html (also /de/news.html?id=9) und wird durch PHP geparst. Durch die MultiViews kann ich jetzt auch dieses lästige .html (oder auch .php oder was auch immer) weglassen.

                      Ich habe es trotzdem ausprobiert hier das .html anzuhängen, und leider ohne Erfolg.

                      Grüße
                      Jeena Paradies

                      --
                      Logo drucken welches sich auf einer dunklen Seite befindet
                      http://jeenaparadies.de/weblog/2004/august/print-logo/
                      Spammer jetzt beim Arbeitsamt
                      http://jeenaparadies.de/artikel/arbeitsamt-spammer/
                      1. Hallo Jeena.

                        Vielleicht hast du es übersehen [...]

                        Eddi hat mich diesbezüglich schon aufgeklärt :)

                        Aus dem Serverlog sollte sich doch eigentlich ergeben, welche Ressource zum 404er geführt hat, denke ich. Ansonsten besteht auch die Möglichkeit, ein Rewrite-Log zu führen, um den Fehler zu finden. Vielleicht führt dich das auf die Spur des Fehlers.

                        Freundschaft!
                        Siechfred

                        1. Hallo,

                          Aus dem Serverlog sollte sich doch eigentlich ergeben, welche Ressource zum 404er geführt hat, denke ich. Ansonsten besteht auch die Möglichkeit, ein Rewrite-Log zu führen, um den Fehler zu finden. Vielleicht führt dich das auf die Spur des Fehlers.

                          Das error.log sagt dazu:
                          [Mon Aug 23 14:25:47 2004] [error] [client 82.83.168.153] File does not exist: /home/vhosts/SEITE.net/var/www/html/de/news.html/11

                          Weil es die Seite 11 und das Verzeichniss news.html freilich nicht gibt.

                          Wie ist das mit dem Rewrite-Log kann ich das irgendwie selber einstellen (.htaccess) wohin das geschrieben wird, bzw überhaupt mal einschalten?

                          Grüße
                          Jeena Paradies

                          --
                          Logo drucken welches sich auf einer dunklen Seite befindet
                          http://jeenaparadies.de/weblog/2004/august/print-logo/
                          Spammer jetzt beim Arbeitsamt
                          http://jeenaparadies.de/artikel/arbeitsamt-spammer/
                          1. Hallo Jeena.

                            Wie ist das mit dem Rewrite-Log kann ich das irgendwie selber einstellen (.htaccess) wohin das geschrieben wird, bzw überhaupt mal einschalten?

                            Zum Einschalten: http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html#rewriteloglevel (Standard ist 0, also kein Logging). Allerdings kannst du das offenbar nicht in der htaccess verwenden.

                            Ansonsten gibt es hier noch einige Tipps:
                            http://httpd.apache.org/docs-2.0/misc/rewriteguide.html

                            Freundschaft!
                            Siechfred

                  3. Hallo,

                    http://jeenaparadies.de/weblog/2004/august/obstsalat/ umgewandelt was man sich erstens leichter merken kann und zweitens wie eine Filesystem Struktur aussieht und sich verhält. Man kann da nämlich einfach einen Teil abschneiden und kommt in "ein Verzeichnis höher" obwohl es gar keine Verzeichnisse gibt.

                    Ich hoffe es ist mir gestattet noch eine Frage zu stellen:
                    Wie wird dem Client mitgeteil, wie der umgewandelte URL aussieht. Durch 307 und Location (also einem Mehr an Traffic durch einen Subrequest)?

                    Gruß aus Berlin!
                    eddi

                    --
                    Manchmal trifft es einen doch ganz unverhofft t86591:
                    > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
                    Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
                    1. Hi,

                      Ich hoffe es ist mir gestattet noch eine Frage zu stellen:
                      Wie wird dem Client mitgeteil, wie der umgewandelte URL aussieht. Durch 307 und Location (also einem Mehr an Traffic durch einen Subrequest)?

                      Gar nicht. Sinn und Zweck ist ja gerade, daß der Client keine Ahnung hat, wie die interne URL aussieht.
                      (Ausnahme: wenn auf externe URLs umgeschrieben wird)

                      cu,
                      Andreas

                      --
                      MudGuard? Siehe http://www.Mud-Guard.de/
                      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                      1. Hi,

                        Gar nicht. Sinn und Zweck ist ja gerade, daß der Client keine Ahnung hat, wie die interne URL aussieht.
                        (Ausnahme: wenn auf externe URLs umgeschrieben wird)

                        Vielen Dank.

                        Gruß aus Berlin!
                        eddi

                        --
                        Manchmal trifft es einen doch ganz unverhofft t86591:
                        > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
                        Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
                    2. Hallo,

                      Ich hoffe es ist mir gestattet noch eine Frage zu stellen:

                      Klar deswegen sind wir doch alle hier :)

                      Wie wird dem Client mitgeteil, wie der umgewandelte URL aussieht. Durch 307 und Location (also einem Mehr an Traffic durch einen Subrequest)?

                      Den Client geht das gar nichts an. Die URL wird auf dem Server intern umgeschrieben.

                      Man fordert also http://example.org/wasweisich an der server bekommt das guckt in seine rewrite rules dort steht zum Beispiel:

                      RewriteRule "^([a-zA-Z0-9-_]+)/" /artikel.php?artikel=$1

                      und alles was nach dem http://example.org/ kommt wird in die Variable $1 reingeschrieben. Wenn das fertig ist ruft der Server die Datei /artikel.php?artikel=wasweisich auf. Der client soll gar nichts davon mitbekommen.

                      Grüße
                      Jeena Paradies

                      --
                      [remote-signature:http://jeenaparadies.de/test/self/sig.php]
                      Spammer jetzt beim Arbeitsamt
                      http://jeenaparadies.de/artikel/arbeitsamt-spammer/
                      1. Hallo Jeena,

                        darüber war ich grade im Irrtum, denn ich dachte aus einem Request an /bla.html?so=undso wird eine Umformung zu /bla/irgendwas/.
                        Danke auch Dir.

                        Gruß aus Berlin!
                        eddi

                        --
                        Manchmal trifft es einen doch ganz unverhofft t86591:
                        > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
                        Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
  2. Hallo,

    Mit hilfe eines guten Geistes ist es mir endlich gelungen mod_rewrite richtig anzuwenden. Ein Problem war - habe ich mir sagen lassen - dass die MultiViews an waren. Jetzt sieht die .htaccess so aus und funktioniert:

    ---------------------------------------------

    Einstellungen fuer alternative Inhalte

    AddType application/x-type-map var

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .html

    DirectoryIndex index.html index.php index.xhtml index.var

    $basedir für alle Dateien

    php_value auto_prepend_file /home/vhosts/SEITE.net/var/www/html/prepend.php

    RewriteEngine on
    RewriteBase /
    RewriteRule ^(de|en)/news.html/([0-9]+) /$1/news.html?id=$2

    Options Indexes FollowSymLinks MultiViews
    ---------------------------------------------

    Grüße
    Jeena Paradies

    --
    Logo drucken welches sich auf einer dunklen Seite befindet
    http://jeenaparadies.de/weblog/2004/august/print-logo/
    Spammer jetzt beim Arbeitsamt
    http://jeenaparadies.de/artikel/arbeitsamt-spammer/