Doris Hemmer: läuft mod_rewrite?

Hallihallo,

zwei Fragen habe ich.
Ich versuche in meiner Website eine RewriteRule zu verwenden. Es passiert aber einfach nichts wenn ich die einfüge.

Hier lokal in einem Fertig-WAMP-System habe ich das ganze schon ausprobiert und es funktioniert wie gewünscht - zumindest nachdem ich das Rewrite-Modul aktiviert habe.

Da der Webhoster eine Schnarchnase ist, befürchtete ich, daß das Modul dort nicht läuft. Aber wenn es hier nicht läuft, kommt ein 500 Servererror bei Verwendung der Statements in der .htaccess.

Gibt es eine Möglichkeit, wie ich herausfinden kann, ob beim Hoster das Rewrite-Modul läuft (ohne ihn zu fragen - das habe ich schon ergebnislos gemacht)? Und kann es sein, daß der Server-Error dort unterdrückt wird wenn das Modul nicht läuft, während er hier bei mir auftritt?

Tschüß,
Doris

  1. Hallo Doris,

    Da der Webhoster eine Schnarchnase ist,

    Schon mal daran gedacht, ihn zu wechseln?

    befürchtete ich, daß das Modul dort nicht läuft. Aber wenn es hier nicht läuft, kommt ein 500 Servererror bei Verwendung der Statements in der .htaccess.

    Hast Du Zugriff auf Dein error_log damit Du die Fehlermeldung erkennen kannst?

    Gibt es eine Möglichkeit, wie ich herausfinden kann, ob beim Hoster das Rewrite-Modul läuft (ohne ihn zu fragen - das habe ich schon ergebnislos gemacht)?

    Mit PHP als SAPI-Modul kannst Du außerdem über phpinfo() feststellen, welche Module geladen sind, mit PHP als CGI geht das nicht.

    Anders geht es nicht, da in den Headern (siehe auch http://aktuell.de.selfhtml.org/cgi-bin/serverid.pl) nie etwas über mod_rewrite steht.

    Und kann es sein, daß der Server-Error dort unterdrückt wird wenn das Modul nicht läuft, während er hier bei mir auftritt?

    Verstehe nicht so ganz, was Du meinst...

    Christian

    --
    Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
    1. Servus Christian,

      danke zunächst für Deine schnelle Antwort.

      Da der Webhoster eine Schnarchnase ist,

      Schon mal daran gedacht, ihn zu wechseln?

      Nein, ich damals so blöd, für ein Jahr im voraus zu zahlen.

      Hast Du Zugriff auf Dein error_log damit Du die Fehlermeldung erkennen kannst?

      Das wäre schön, ist aber leider nicht.

      Mit PHP als SAPI-Modul kannst Du außerdem über phpinfo() feststellen, welche Module geladen sind, mit PHP als CGI geht das nicht.

      Och menno, da hatte ich mich schon gefreut und dann läuft PHP als CGI - da hat sich wohl alles verschworen. :(

      Und kann es sein, daß der Server-Error dort unterdrückt wird wenn das Modul nicht läuft, während er hier bei mir auftritt?

      Verstehe nicht so ganz, was Du meinst...

      Na wenn ich lokal in meinem WAMP das Modul nicht aktiviere, kommt der 500er-Fehler, beim Hoster nicht.
      Aber wenn man den Server so konfigurieren kann, daß die Fehlermeldung nicht ausgegeben wird, ist das Nichtauftreten ja kein Hinweis darauf, ob das Modul läuft oder nicht.

      Aber wenn Sönke schreibt, daß die Meldung nicht unterdrückt werden kann, wird das Modul beim Hoster wohl doch laufen, sonst bekäme ich ja eine Meldung.

      Tschüß,
      Doris

  2. Ich versuche in meiner Website eine RewriteRule zu verwenden. Es passiert aber einfach nichts wenn ich die einfüge.

    Wie sehen die Einträge aus? Hast Du die Einstellungen "RewriteEngine" und "RewriteBase" auch nicht vergessen?

    Da der Webhoster eine Schnarchnase ist, befürchtete ich, daß das Modul dort nicht läuft. Aber wenn es hier nicht läuft, kommt ein 500 Servererror bei Verwendung der Statements in der .htaccess.

    So soll es sein.

    Gibt es eine Möglichkeit, wie ich herausfinden kann, ob beim Hoster das Rewrite-Modul läuft (ohne ihn zu fragen - das habe ich schon ergebnislos gemacht)?

    Siehe Christians Antwort. Alternativ kannst Du davon ausgehen, daß solange kein 500er-Fehler kommt, das Modul zumindest im Server steckt.

    Und kann es sein, daß der Server-Error dort unterdrückt wird wenn das Modul nicht läuft, während er hier bei mir auftritt?

    Unwahrscheinlich bis unmöglich.

    Gruß,
      soenk.e

    1. Hi Christian,

      Dank auch an Dich für die schnelle Antwort

      Ich versuche in meiner Website eine RewriteRule zu verwenden. Es passiert aber einfach nichts wenn ich die einfüge.

      Wie sehen die Einträge aus? Hast Du die Einstellungen "RewriteEngine" und "RewriteBase" auch nicht vergessen?

      Ich denke nicht:

      RewriteEngine On
      RewriteCond %{HTTP_REFERER} ^http://.*ebay.[a-z]+/.*$ [NC]
      RewriteRule ^.*.jpg$ http://localhost/geklaut.jpg [L,R]

      Ich hatte aber auch schon andere, einfachere Tests gemacht.

      Siehe Christians Antwort. Alternativ kannst Du davon ausgehen, daß solange kein 500er-Fehler kommt, das Modul zumindest im Server steckt.

      Und kann es sein, daß der Server-Error dort unterdrückt wird wenn das Modul nicht läuft, während er hier bei mir auftritt?

      Unwahrscheinlich bis unmöglich.

      Aha, also gut. Dann muß es irgendwie anders deaktiviert sein. Denn FileInfo an sich ist an, sonst ginge ja auch kein Redirect-Statement.

      Tschüß,
      Doris

      1. Ich versuche in meiner Website eine RewriteRule zu verwenden. Es passiert aber einfach nichts wenn ich die einfüge.

        Wie sehen die Einträge aus? Hast Du die Einstellungen "RewriteEngine" und "RewriteBase" auch nicht vergessen?

        RewriteEngine On
        RewriteCond %{HTTP_REFERER} ^http://.*ebay.[a-z]+/.*$ [NC]
        RewriteRule ^.*.jpg$ http://localhost/geklaut.jpg [L,R]

        Wo ist die (bei .htaccess-Nutzung) zwingend notwendige RewriteBase-Angabe?

        Gruß,
          soenk.e

        1. RewriteEngine On
          RewriteCond %{HTTP_REFERER} ^http://.*ebay.[a-z]+/.*$ [NC]
          RewriteRule ^.*.jpg$ http://localhost/geklaut.jpg [L,R]

          Wo ist die (bei .htaccess-Nutzung) zwingend notwendige RewriteBase-Angabe?

          Ist sie das wirklich?
          Wie schon geschrieben, lokal funktioniert die Sache ja auch. Immer zwingend notwendig kann die Angabe also nicht sein.
          Und auch mit der Angabe bekomme ich nichts bzw. 500er-Fehler. Ich habe mir den Text zu RewriteBase auf apache.org durchgelesen, bin mir aber nicht ganz sicher, welchen Pfad ich für RewriteBase in meinem Fall angeben müßte.

          Gruß,
          Doris

          1. Wo ist die (bei .htaccess-Nutzung) zwingend notwendige RewriteBase-Angabe?

            »»

            Ist sie das wirklich?

            Der Apache-Anleitung nach zu urteilen schon, jedenfalls sind die beiden entsprechenden Hinweise fett gedruckt bzw. blau hinterlegt und mit Ausrufungszeichen versehen. Scheint also wichtig zu sein ;)

            Wie schon geschrieben, lokal funktioniert die Sache ja auch. Immer zwingend notwendig kann die Angabe also nicht sein.

            Das habe ich zugegebenermaßen früher auch schon mal beobachtet. Nachvollziehen kann ich es aber leider nicht, denn ohne geht's auf meinem heimischen Testrechner jetzt tatsächlich nicht mehr.

            bin mir aber nicht ganz sicher, welchen Pfad ich für RewriteBase in meinem Fall angeben müßte.

            Einfach den Pfad, denn man im Webbrowser zu Deiner .htaccess eingeben müsste. Liegt sie unter "http://example.com/inseln/lummerland/.htaccess", lautet die RewriteBase-Angabe "/inseln/lummerland".

            Ich möchte aber nicht behauptet haben, daß Dein Problem tatsächlich hier seine Ursache hat :)

            Gruß,
              soenk.e

  3. Hi Doris,

    zwei Fragen habe ich.
    Ich versuche in meiner Website eine RewriteRule zu verwenden. Es passiert aber einfach nichts wenn ich die einfüge.

    wo hinein fügst Du sie ein? (.htaccess?)
    Funktionieren dort andere Direktiven derselben Berechtigungsklasse?

    Gibt es eine Möglichkeit, wie ich herausfinden kann, ob beim Hoster das Rewrite-Modul läuft

    Das kommt darauf an. Wie unternehmungslustig bist Du denn so? ;-)

    Hast Du Shell-Zugang zum Server?

    Wenn ja, kannst Du mal ein bißchen in den Verzeichnissen herum stöbern.
    Mit etwas Glück ist das Apache-Binary zumindest ausführbar für "world" (gerade _wenn_ der Provider eine Schnarchnase ist - das bedeutet ja noch nicht, daß man den Webserver dann starten oder stoppen könnte, wegen Portnummer < 1024).

    Falls Du das httpd-Binary findest, kannst Du mal "httpd -l" angeben - das würde Dir zeigen, welche Module statisch eingebunden sind.

    Die Wahrscheinlichkeit ist allerdings hoch, daß die Antwort lautet "mod_so und alles andere wird dynamisch nachgeladen" - wiederum _gerade_ bei einer Schnarchnase.
    Nächster Versuch wäre dann: "httpd -L" - Achtung, das gibt viel Ausgabe, das listet nämlich sämtliche von diesem Webserver unterstützte Direktiven auf, mitsamt einer Kurzbeschreibung.

    Falls Dir der Shell-Zugang fehlt, wird das Suchen nach dem Apache-Binary ein Raten. (/usr/local/bin/httpd? /usr/bin/httpd? /usr/local/apache/bin/httpd? ...)
    Vielleicht hilft sogar "find / -name httpd -ls" weiter ... man muß sich halt zu helfen wissen.

    Besagte Kommandos kannst Du dann immer noch durch ein Trivial-CGI-Skript über "system" ausführen.
    (Das ist der Grund dafür, wieso es von einem Provider Unfug ist, einem Webspace-Kunden keinen Dialog-Zugang zu erlauben, aber eigene CGI-Skripte: Dann schreibt man sich einfach in CGI eine kleine Telnet-Emulation ...)

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.