Gerhard: URL-Umleitung klappt nicht

Hallo,
ich möchte alle Aufrufe ..../Name.html umleiten zu ..../Name.shtml.
Die Angabe in .htaccess

RewriteEngine On
   RewriteRule ^(.*).html $1.shtml

bringt den Fehler

«Internal Server Error
   The server encountered an internal error or misconfiguration and was unable to complete
   your request.»

Was habe ich falsch gemacht?
Wie kann man anzeigen, was das Ergebnis des Rewrite ist, um dann den Fehler selbst zu finden?
Schönen Dank

  1. Hi,

    «Internal Server Error
       The server encountered an internal error or misconfiguration and was unable to complete
       your request.»

    Was habe ich falsch gemacht?

    Das wird im Error-Log stehen.

    MfG ChrisB

    --
    Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/
  2. Hi,

    RewriteRule ^(.*).html $1.shtml

    Name.html wird zu Name.shtml

    In der nächsten Runde matcht das wieder, aus

    Name.shtml wird Name..shtml

    (.*) paßt auf Name., der . paßt auf das s.

    In der nächsten Runde:

    (.*) paßt auf Name.., der . paßt auf das s ==> Name...shtml

    In der nächsten Runde ...

    Was habe ich falsch gemacht?

    Du wolltest mit . vermutlich einen Punkt matchen, nicht ein beliebiges Zeichen.
    Also hast Du das escapen vergessen.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. Hallo,
      erst einmal Dank an Euch beide.
      Jetzt habe ich folgendes gemacht:

      RewriteEngine On
         RewriteRule ^(.*).html $1.shtml

      Ergebnis jetzt:

      Bei Aufruf von http://www.meinehomepage.test/index.html wird wie gewünscht die Seite
      index.shtml aufgerufen, angezeigt wird aber in der Adresszeile nach wie vor http://www.meinehomepage.test/index.html.

      Ich war nun der Annahme, dass dies daran liegt, dass nicht permanent umgeleitet wird.
      Letzteres möchte ich aber, da alle Seiten *.html jetzt nicht mehr existieren, dafür aber die Seiten *.shtml.
      Ich habe also angegeben

      RewriteEngine On
         RewriteRule ^(.*).html $1.shtml [R=301]

      Ergebnis:
      http://www.meinehomepage.test/D:/meinehomepage/index.shtml
      und im errorlog:
      [Thu Jul 10 15:39:58 2014] [error] [client 127.0.0.1] (20023)The given path was above the root path: Cannot map GET /D:/meinehomepage/index.shtml HTTP/1.1 to file

      Was mache ich jetzt noch falsch?

  3. @@Gerhard:

    nuqneH

    ich möchte alle Aufrufe ..../Name.html umleiten zu ..../Name.shtml.

    Was habe ich falsch gemacht?

    3. Du verwendest mod_rewrite, wo du es nicht tun solltest.

    2. Du willst weiterleiten, anstatt einfach deinem Server zu sagen, er möge alle .html-Dateien nach SSI parsen.

    1. Du verwendest Links mit Dateiendungen. Würdest du sämtliche URIs ohne '.html' bzw. '.shtml' angeben und MultiViews seine Arbeit tun zu lassen. Dann entstünde dein Problem gar nicht erst.

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    1. Hallo!

      1. Du verwendest mod_rewrite, wo du es nicht tun solltest.

      Habe jetzt angegeben:
      RedirectMatch 301 (.*).html$ $1.shtml
      Es funktioniert - aber ist es noch verbesserungswürdig?

      1. Du willst weiterleiten, anstatt einfach deinem Server zu sagen, er möge alle .html-Dateien nach SSI parsen.

      Dass ich nach SSI parsen will, habe ich bereits in .htaccess angegeben (und zwar für die alte Version .html und für die neue Version .shtml)
      (Hintergrund: Habe vor längerem html-Programme übernommen und habe sie ergänzt um SSL. Im Zuge des "Responsive-Design" habe ich neue Dateien .shtml erstellt und zum Test beide Versionen parallel gehalten. Jetzt soll die alte Version deaktiviert werden)

      1. Du verwendest Links mit Dateiendungen. Würdest du sämtliche URIs ohne '.html' bzw. '.shtml' angeben und MultiViews seine Arbeit tun zu lassen. Dann entstünde dein Problem gar nicht erst.

      Das ist mir leider zu hoch (vermutlich auch, wenn es in deutsch beschrieben wäre).
      Gruß
      Gerhard