URL-Umleitung klappt nicht
Gerhard
- webserver
0 ChrisB0 MudGuard0 Gerhard
0 Gunnar Bittersmann0 Gerhard
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
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
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
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?
@@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'
Hallo!
- 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?
- 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)
- 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