Phil: htaccess: mod_rewrite will nicht

Huhu ihrs!
Ich hab mal wieder ein kleines Problem, diesmal mit htaccess. Ich möchte mir mod_rewrite zu nutze machen und -für Suchmaschinen- meine php-Seiten als html-Seiten ausgeben lassen.

Ich fange gerade an, habe bisher diesen Code:
RewriteEngine on
   RewriteCond %{REQUEST_URI} /(.*).htm$
   RewriteRule (.*).htm$ /index.php?site=$1

Aber irgendwie klappt das schon nicht. Wenn ich nun z.B. seite.htm aufrufe, dann soll index.php?site=seite aufgerufen werden, stattdessen spuckt mir mein Server aus, dass seite.html nicht gefunden werden könnte *schulterzuck*

mod_rewrite ist auf meinem Server installiert, so schlimm ists mit mir nun auch wieder nicht ;) Aber wüsstet ihr, woran das liegen könnte?

CU
Phil

  1. Werden sonstige Angaben in der .htaccess ausgeführt?

    1. Werden sonstige Angaben in der .htaccess ausgeführt?

      Ja, alle (Fehlerseitenumleitung und n paar Ad Aplication für bestimmte dateien). Die habe ich aber schon rausgeschnitten, funzt trotzdem net :(
      CU
      Phil

  2. Hallo Phil,

    Ich hab mal wieder ein kleines Problem, diesmal mit htaccess. Ich möchte mir mod_rewrite zu nutze machen und -für Suchmaschinen- meine php-Seiten als html-Seiten ausgeben lassen.

    Suchmaschinen ist es egal, ob PHP oder nicht. Ich würde mod_rewrite eher für eine nach außen sinnvolle erscheinende Strukturierung verwenden als für Suchmaschinen.

    Ich fange gerade an, habe bisher diesen Code:
    RewriteEngine on
       RewriteCond %{REQUEST_URI} /(.*).htm$
       RewriteRule (.*).htm$ /index.php?site=$1

    Bei mir funktioniert das. Ich würde zwar noch ein

    RewriteBase /

    reinschreiben, aber Deine Konstruktion funktioniert auch ohne.

    mod_rewrite ist auf meinem Server installiert, so schlimm ists mit mir nun auch wieder nicht ;) Aber wüsstet ihr, woran das liegen könnte?

    Keine Ahnung... Was steht denn eigentlich noch in der .htaccess drin?

    Viele Grüße,
    Christian

    1. Hi Christian!

      Keine Ahnung... Was steht denn eigentlich noch in der .htaccess drin?

      Zum Testzwecke nichts, funktioniert trotzdem net.
      CU
      Phil

    2. Moin!

      Ich hab mal wieder ein kleines Problem, diesmal mit htaccess. Ich möchte mir mod_rewrite zu nutze machen und -für Suchmaschinen- meine php-Seiten als html-Seiten ausgeben lassen.

      Suchmaschinen ist es egal, ob PHP oder nicht. Ich würde mod_rewrite eher für eine nach außen sinnvolle erscheinende Strukturierung verwenden als für Suchmaschinen.

      Ganz genau. Zumal die Änderung bzw. Maskierung der PHP-Seiten als HTML-Seiten ja ohnehin _alle_ Clients betrifft. Das kann ja nur wirken, wenn alle Links in der Site auch geändert werden und auf ".htm"-Seiten zeigen. Sonst haben die Suchmaschinen nichts davon.

      Ich fange gerade an, habe bisher diesen Code:
      RewriteEngine on
         RewriteCond %{REQUEST_URI} /(.*).htm$
         RewriteRule (.*).htm$ /index.php?site=$1

      Bei mir funktioniert das. Ich würde zwar noch ein

      RewriteBase /

      Ich frage mich, warum die RewriteCond da drinsteht? Die prüft nichts, was die RewriteRule nicht auch schon prüfen würde.

      Ein Studium der mod_rewrite-Doku, insbesondere der Erklärung, welche Regeln wann abgearbeitet werden, dürfte das genauer erklären.

      Eine RewriteBase-Angabe ist IIRC zwingend erforderlich, wenn Rewriting in einer .htaccess steht.

      - Sven Rautenberg

      --
      ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
      1. Hallo Sven,

        Eine RewriteBase-Angabe ist IIRC zwingend erforderlich, wenn Rewriting in einer .htaccess steht.

        Jain. Dachte ich eigentlich auch, allerdings funktioniert der Code, den Phil gepostet hat, bei mir (Apache 2.0.45, Windows 98 SE) auch ohne RewriteBase.

        Viele Grüße,
        Christian

        1. Huhu!
          Ich hab noch den Apachen 1.3. irgendwas auf meinem Host, ist das ein Hindernis?

          CU
          Phil

          1. Hallo Phil,

            Ich hab noch den Apachen 1.3. irgendwas auf meinem Host, ist das ein Hindernis?

            Eigentlich nicht. Hast Du es denn mit einer RewriteBase-Angabe probiert? Vielleicht kommt der Apache2 in bestimmten Situationen ohne aus, wo der Apache1.3 nicht ohne auskommt? (laut Doku sehe ich da keinen Unterschied, aber man weiß ja nie)

            Viele Grüße,
            Christian

        2. Eine RewriteBase-Angabe ist IIRC zwingend erforderlich, wenn Rewriting in einer .htaccess steht.

          Jain. Dachte ich eigentlich auch, allerdings funktioniert der Code, den Phil gepostet hat, bei mir (Apache 2.0.45, Windows 98 SE) auch ohne RewriteBase.

          Deinen Apache solltest Du updaten, wenn nicht gar sogar das ganze Betriebssystem durch eine geeignete Alternative ersetzen.

          1. Hallo Johannes,

            Deinen Apache solltest Du updaten, wenn nicht gar sogar das ganze Betriebssystem durch eine geeignete Alternative ersetzen.

            Huh? Mein Apache hört nur auf dem Loopback-Interface - warum sollte ich ihn dann updaten?

            Erstaunte Grüße,
            Christian

            1. Deinen Apache solltest Du updaten, wenn nicht gar sogar das ganze Betriebssystem durch eine geeignete Alternative ersetzen.

              Huh? Mein Apache hört nur auf dem Loopback-Interface - warum sollte ich ihn dann updaten?

              Aufgrund von vielen Bugfixes, u.A. bezüglich mod_rewrite.