Zur Navigation

Endung ".html"

1 User 510 (Ex-Mitglied)

Gibt es eigentlich eine Möglichkeit, die Webseite

www.xy.de/abc.html

über die Eingabe von

www.xy.de/abc

zu erreichen? Ist leider keine php-Seite.

05.01.2008 18:10

2 Rudy

Wenn auf dem Server Apache läuft, dann kannst Du mittels URL-Rewriting in der .htaccess eine entsprechende Rule einsetzen.

in etwa:

RewriteEngine On
RewriteRule ^abc$ ./abc.html [L]

05.01.2008 18:18

3 Jörg

Oder ganz allgemein:

RewriteEngine On
RewriteRule ^([^/^\.]+)$ $1.html

Diese Rule sollte dafür sorgen, dass bei allen Aufrufen von Seiten im Hauptverzeichnis ohne Dateiendung das entsprechende File mit der Dateiendung '.html' aufgerufen wird

PS: bin mir aber nicht sicher, ob der Apache nicht schon vorher von sich aus weiterleitet auf abc.html, wenn er abc nicht findet, und die Rule dnn nicht mehr zum Zuge kommt. Musst mal ausprobieren, ob das so funktioniert...

05.01.2008 18:27 | geändert: 05.01.2008 18:28

4 Rudy

PS: bin mir aber nicht sicher, ob der Apache nicht schon vorher von sich aus weiterleitet auf abc.html, wenn er abc nicht findet, und die Rule dnn nicht mehr zum Zuge kommt. Musst mal ausprobieren, ob das so funktioniert...
Du meinst das unsägliche Multiviews? Bei seiner Stralsund-Seite ist das nicht der Fall, der Aufruf einer Unterseite ohne Endung leitet auf das Hauptverzeichnis.

05.01.2008 18:42

5 User 510 (Ex-Mitglied)

Stimmt Rudy.
Hab die .htaccess jetzt wie folgt geändert, leider ohne Erfolg.
Entweder hat Goneo keine Apache-Server oder ich hab etwas vergessen.

Hier die komplette .htaccess

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\.xy\.de
RewriteRule ^(.*)$ http://www.xy.de/$1 [L,R=301]
RewriteRule ^stadtliga$ ./stadtliga.html [L]

ErrorDocument 403 http://www.xy.de
ErrorDocument 404 http://www.xy.de
ErrorDocument 500 http://www.xy.de

05.01.2008 18:49 | geändert: 05.01.2008 18:50

6 Jörg

Der Apache läuft und Modrewrite auch - die Weiterleitung auf die Standarddomain funktioniert ja. Aber wieso wird auf / weitergeleitet :/?

Edit: er leitet von /stadtliga auf /stadtliga/ und von dort auf / D.h. die Rule kommt so gar nicht mehr zum Zuge..

05.01.2008 18:59

7 Jörg

Nachtrag:

die zweite Weiterleitung auf / folgt dieser Anweisung:

ErrorDocument 404 http://www.xy.de

Wäre es hier nicht sinnvoller, auf eine Fehlerseite zu leiten statt auf die Startseite?

Aber zurück zum eigentlichen Problem: dieses wird durch die vorzeitige Weiterleitung von von /stadtliga auf /stadtliga/ verursacht; der Apache deines Hosters ist wohl so eingestellt, dass er hier automatisch weiterleitet - leider kann eine RewriteRule dann nicht mehr greifen..

05.01.2008 19:10 | geändert: 05.01.2008 19:11

8 Rudy

dieses wird durch die vorzeitige Weiterleitung von von /stadtliga auf /stadtliga/ verursacht;
Das machen viele Hoster, meiner auch. Vielleicht wäre das dann am einfachsten so zu lösen, dass man den trailing slash in der Rule miteinbezieht?

RewriteRule ^stadtliga/$ ./stadtliga.html [L]

Dann würde /stadtliga vom Hoster auf /stadtliga/ umgeleitet, und das zeigt dann die stadtliga.html an?

05.01.2008 19:37

9 User 510 (Ex-Mitglied)

Hab das mal probiert Rudy.
Angezeigt wird zwar stadtliga.html, aber total zerschossen.
Im Browswer wird .html dabei nicht angezeigt.

@Jörg: Eine Fehlerseite hab ich bis jetzt noch nicht eingerichtet. Meine .htaccess ist in Bezug auf diverse Fehlerbehandlungen eh sehr jungfräulich.

05.01.2008 19:44 | geändert: 05.01.2008 19:48

10 Rudy

Angezeigt wird zwar stadtliga.html, aber total zerschossen.

Das ist klar - die Rule funktioniert, nur hast Du relative URLs in Deiner Seite, das heißt, das CSS und Grafiken werden nun ausgehend vom Unterverzeichnis /stadtliga/ gesucht.

Versuch mal generell
<link href="style.css" rel="stylesheet" type="text/css">
abzuändern in
<link href="/style.css" rel="stylesheet" type="text/css">
Das funktioniert von überall aus. Bei /stadtliga/ müsste bei der relativen Angabe ohne "/" style.css im Verzeichnis /stadtliga/ liegen.

Edit: Gleiches gilt für alle externen Dateien. Beispielsweise die src-Angaben der imgs und scripts. Wenn Du überschreibst, sollten die immer absolut sein, also immer ausgehend von /, z.B. src="/Scripts/AC_RunActiveContent.js", style="background:url(/blue-rep.gif);", <img src="/corner-top-left.gif" ...

05.01.2008 19:48 | geändert: 05.01.2008 19:54