Eigene 404 Fehler-Seite mittels web.config

sebi45 schrieb am 21.05.2017 um 19:22 Uhr

Hallo zusammen,

 

ich habe eine alte Domain übernommen und eine völlig neue Webseite darauf gebaut.

Google hat natürlich von der alten Domain alle Seiten indeziert und liefert diese jetzt brav

als Suchergebniss. Solange bis sich google an meine neue Seite gewöhnt hat, möchte ich mir

eine eigene 404 Seite anlegen, da ich nicht den kompletten alten Inhalt nachbauen kann/will.

Ich habe ein Webspace bei 1und1. In deren Wiki steht, man soll sich eine web.config anlegen

und das hier integrieren:

<httpErrors errorMode="Custom">
<clear/>
<error statusCode="404" path="error404.html" />
<error statusCode="500" path="error500.html" />
</httpErrors>

 

Soweit so klar...

 

Aber wie setzt sich der Rest dieser web.config zusammen ??

Support sagt, skripts dürfen sie nicht erklären...

Da fehlt doch was, oder ??

Ich brauche wirklich Eure hilfe...

 

 

Kommentare

BeRo schrieb am 21.05.2017 um 21:27 Uhr

[...] Aber wie setzt sich der Rest dieser web.config zusammen ? [...]

Das musst Du nicht unbedingt wissen, weil für Dein Vorhaben nur die Ergänzung des Abschnitts
<httpErrors errorMode="Custom">
erforderlich ist.
Der Rest der Datei sollte bereits vorkonfiguriert-, also gebrauchsfertig auf dem Webserver abgelegt sein.
Öffne also einfach mit einem geeigneten Texteditor (z. B. Notepad++) die Datei "web.config" auf dem Webserver und nimm die beschriebenen Ergänzungen vor.

Das war's dann auch schon. 😉

1&1 hat die Info sinngemäß hier veröffentlicht...

Viel Erfolg

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

sebi45 schrieb am 21.05.2017 um 21:33 Uhr

Es ist aber leider keine web.config vorhanden. In der wiki von 1und1 steht man soll sich "einfach" eine anlegen falls noch keine vorhanden ist, verraten wie sie aufgebaut werden soll verraten sie aber nicht...

 

BeRo schrieb am 21.05.2017 um 22:05 Uhr

[...] Es ist aber leider keine web.config vorhanden [...]

Dann erstell einfach eine neue Datei und versuch's mit dem u. a. Inhalt:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>   
   <system.web>
        <httpErrors errorMode="Custom">
            <clear/>
            <error statusCode="404" path="error404.html" />
            <error statusCode="500" path="error500.html" />
        </httpErrors>
   </system.web>
</configuration>

Ich kann leider nicht testen, ob das funktioniert, aber einen Versuch ist's wert 😎

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

sebi45 schrieb am 22.05.2017 um 07:31 Uhr

Funktioniert leider nicht... :-(

Speichern als UTF8 ist doch richtig, oder?

 

BeRo schrieb am 22.05.2017 um 09:00 Uhr

[...] Funktioniert leider nicht [...]

Du hast daran gedacht, den im Beispielcode gesetzten Pfad- und die Dateinamen an Deine Umgebung anzupassen?
Wenn ja, dann kann ich Dir an der Stelle nicht weiter helfen, da ich keine Testmöglichkeit habe... 😣

[...] UTF8 ist doch richtig, oder? [...]

AFAIK ja.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

marboe schrieb am 22.05.2017 um 09:13 Uhr

Ich würde ja einen ganz anderen Ansatz verfolgen. Denn

 

Google hat natürlich von der alten Domain alle Seiten indeziert und liefert diese jetzt brav

als Suchergebniss. Solange bis sich google an meine neue Seite gewöhnt hat, möchte ich mir

eine eigene 404 Seite anlegen,

Wenn dir Google wichtig ist, wäre eine Weiterleitung der richtige Weg.😉 Das heißt alte Seite -> auf neue Seite weiterleiten. Dafür kann man die htaccess nutzen. Wenn die alten Seiten nicht mehr existieren gilt das auch. Dann leite um: alte Domain komplett auf eine Wegweiserseite der neuen Domain. Eine 404er Seite ist dann die Zugabe; aber die anderen Weiterleitungen sind viel, viel wichtiger.

Auch eine Fehlerseite kann bei 1und1 per htaccess empfohlen werden. Hierfür erstelle eine Textdatei mit Namen ".htaccess". Inhalt zum Beispiel:
# Beginn der htaccess für 404 Fehlercode
ErrorDocument 401 https://domain.com/404.htm
ErrorDocument 403 https://domain.com/404.htm
ErrorDocument 404 https://domain.com/404.htm
# Ende der htaccess

Genannt wird hier die Adresse der neuen Seite, die du einfach mit dem WD erstellst mit Seitenname "404" oder "403" usw (In meinem Beispiel leitet alles zu 404).

Diese .htaccess gehört in das Rootverzeichnis deiner Domain und sollte gesondert der Umleitungsempfehlung erfolgen. Hierfür findest du bei 1und1 genug Beispiele wie die Umleitung gemacht wird.

 

Unabhängig davon: bist du sicher, dass du den Test von Bero´s Empfehlung im richtigen Verzeichnis des Servers gemacht hast? Wäre ja wichtig, dass der Homepageverweis bei 1&1 auch auf das Rootverzeichnis zeigt. Evtl solltest du uns mehr Informationen wie zB URLs zur Verfügung stellen 😊
Gruß Marboe

 

BeRo schrieb am 22.05.2017 um 10:35 Uhr

@marboe

.htaccess ist natürlich die beste Basis, wenn der Aufruf von Websites beeinflusst werden soll.
Leider funktioniert das nur auf Linux/Unix basierten Webservern.
1&1 hat für @sebi45 aber scheinbar einen IIS basierten Webserver zur Verfügung gestellt und der kann mit .htaccess leider nicht umgehen. Das ist offenbar auch der Grund für die Empfehlung von 1&1, eine "web.config" Datei anzulegen... 😣

@sebi45

Frage doch einfach mal beim 1&1 Support, welcher Webserver Dir zugeteilt wurde und, wenn es ein IIS basierter Server ist, ob es eine Möglichkeit gibt, auf einen Linux/Unix basierten Webserver umzuziehen.. 😇

Zuletzt geändert von BeRo am 22.05.2017, 10:35, insgesamt 1-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

sebi45 schrieb am 22.05.2017 um 10:45 Uhr

also so langsam komme ich nicht mehr mit. Ich habe auf den Webspace von 1 & 1 eine htacces angelegt. Für die Authentifizierung die Authentifizierung hat auch funktioniert nur der Weiterleitung link auf den geschützten Bereich nicht. Daraufhin habe ich im Control Center die Berechtigungen vergeben und das System hat selbstständig diese Datei angelegt Punkt leider bin ich nicht berechtigt diese Datei zu ändern. Ich müsste mir also eine komplett neue erstellen in die ich dann auch die 404 Fehlerseite reinschreibe Punkt Entweder mache ich die Datei ganz selber oder über das System aber das System lässt mich sie nicht verändern.westfalia-Schwimmen.de

 

sebi45 schrieb am 22.05.2017 um 10:47 Uhr

der Code wäre interessant wie die Datei komplett auszusehen hat

außerdem wäre ich euch dankbar wie ich diese Datei speichern soll Punkt weder im normalen Notepad noch im notepad-plus-plus Gibt es die Möglichkeit in ASCII 2 zu speichern nur utf-8. Ist dass das gleiche? Sorry für die Schreibweise die ich gerade habe aber sobald ich die Spracheingabe auf meinem Handy verändern will stürzt mein Browser ab

BeRo schrieb am 22.05.2017 um 11:04 Uhr

[...] der Code wäre interessant wie die Datei komplett auszusehen hat [...]

Der von @marboe gepostete Code ist komplett. Du kannst ihn genau so übernehmen, wenn Du die Pfad-/Dateiangaben für Deinen Zweck anpasst.

Wenn Dein Webserver eine .htaccess Datei wider Erwarten doch verarbeiten kann, dann bleibe dabei und vergiss die "web.config" 😚

[...] außerdem wäre ich euch dankbar wie ich diese Datei speichern soll [...]

Windows lässt es nicht zu, eine Datei ohne Namen zu speichern. Die ".htaccess" Datei besteht aus Windows Sicht ja nur aus einer Erweiterung, ohne Namen.

Lösung:

Speichere die Datei als "htaccess.txt" auf Deinem PC, verschiebe sie so auf Deinen Webspace und ändere den Dateinamen da um in ".htaccess" 😉

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

sebi45 schrieb am 22.05.2017 um 11:11 Uhr

Und was ist mit der Codierung? UTF-8?

BeRo schrieb am 22.05.2017 um 11:26 Uhr

[...] Und was ist mit der Codierung? [...]

.htaccess verlangt keine Angabe zur Codierung. Du kannst das also "unterschlagen" 😎

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

sebi45 schrieb am 22.05.2017 um 11:35 Uhr

Also den o.g. Code in die vorhandene htaccess einfügen? Einfach nach dem authentifizierungsregeln
?

BeRo schrieb am 22.05.2017 um 11:47 Uhr

[...] Also den o.g. Code in die vorhandene htaccess einfügen [...]

Genau so.

Du kannst den Code ans Ende der vorhandenen Einträge setzen...

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

sebi45 schrieb am 22.05.2017 um 11:50 Uhr

Ich werde es heute Abend mal ausprobieren. Vielen vielen Dank schon mal...

marboe schrieb am 22.05.2017 um 11:50 Uhr

Stopp!

Du schreibst von einem geschützten Verzeichnis. Das ist wichtig.

Wenn du das bei 1und 1 angelegt hast, schreibt dir 1und1 eine .htaccess ins Verzeichnis. Die darfst/kannst du nicht ändern.
Es gibt zwei Lösungen:
1. mache den Passwortschutz selbst. Dann brauchst du 1&1 hierfür nicht.
2. Die htacess gilt immer für die nachfolgenden Ordneraufrufe. Deswegen kannst du 1und1 hier überlisten, indem du entweder den Verzeichnisschutz eine Ebene höher anlegst, oder eben die Veröffentlichung deiner Website nochmal in ein weiteres Verzeichnis schachtelst; dann kannst du eine eigene htaccess drauf legen. Schön ist das nicht, aber geht 😉
Am besten machst du das selbst. Sind nur zwei Dateien... bei Bedarf such nach "htpassword erstellen".

 

Bero:

Genau so.

Du kannst den Code ans Ende der vorhandenen Einträge setzen...

Das funktioniert also bei von 1&1 erstellten "geschützten Verzeichnissen " so leider nicht.

 

 

Btw: ich erstelle solche htaccess-Dateien als .txt und ändere erst nach dem Upload mit FileZille und ergänze den Punkt.
Gruß Marboe

marboe schrieb am 22.05.2017 um 11:54 Uhr

Und zur kompletten Verwirrung nun auch noch das:

Für dein geschütztes Verzeichnis - ob jetzt per 1&1 erstellt oder handgemacht unter
http://westfalia-schwimmen.de/intern/
brauchst du natürlich keine Weiterleitungen; und übrigens auch keine 404. Google sind passwortgeschützte Dateien ziemlich egal. Der Schutz gilt also auch für Google - die haben ja kein Passwort von dir 😏

marboe schrieb am 22.05.2017 um 12:25 Uhr

der Code wäre interessant wie die Datei komplett auszusehen hat

 

Du könntest also zwei Dinge in die ".htaccess" packen: einmal alle Weiterleitungen und zweitens natürlich die 404 / 403 / 402-Seiten. (Empfehlenswert ist auch noch eine weitere Weiterleitung: Websites sind immer zweimal im Netz. Einmal mit domain.de und mit www.domain.de aufrufbar. Das mag Google auch nicht besonders. Die Abhilfe ist einfach. s..u.)

Dazu erstellst du in deinem Projekt ganz normal eine weitere Seite, vergibst ihr den Namen "404" oder "403" usw. Gestalten kannst du sie wie auch immer du willst. Klug sind natürlich hier Informationen zum neuen Webauftritt, ein Wegweiser oder ähnliches.

Dann veröffentlichst du dein Projekt; somit liegt die 404er schon mal auf dem Server und ist aufrufbar unter domain.com/404.htm.

Danach kannst du mit NotePad++ eine .txt Datei erstellen, die beinhaltet

RewriteEngine On
RewriteRule  ^alteSeite.htm$ http://neueSeite.htm [L,R=301]
RewriteRule  ^alteSeite2.htm$ http://neueSeite2.htm [L,R=301]

Dann noch: Weiterleitung von nonWWW auf WWW

RewriteCond  %{HTTP_Host} ^Domain.com$  [NC]
RewriteRule ^(.*)$ http://www.Domain.com/$1 [R=301,L]


Und letztlich noch deine 404:

ErrorDocument 401 https://domain.com/404.htm
ErrorDocument 403 https://domain.com/404.htm
ErrorDocument 404 https://domain.com/404.htm
# Ende der htaccess

Dass kannst du alles hintereinander weg in die eine .htaccess schreiben. (alles fett gedruckte; einfach neue Zeile und reinkopieren.)
Natürlich musst du die Domainnamen und Seitennamen anpassen an deine Vorgaben.
Wenn du noch was anderes brauchst, melde dich.
Diese .txt auf den Server schieben und umbenennen zu: .htaccess

Teste die Weiterleitungen immer bei bereinigtem Browserverlauf (STRG + F5). Falls was nicht funktioniert lösche die .htaccess sofort wieder vom Server. Beachte aber, dass 1und1 gerne mal 2 Minuten braucht, bis alles verarbeitet ist.
Gruß Marboe

 

Ergänzung: Ich sehe gerade, dass ich http und https gemischt habe. Das musst du natürlich auch noch anpassen an deine Vorgaben. Hast du keine SSL-Seiten, gehört da nur http hin.

sebi45 schrieb am 22.05.2017 um 18:36 Uhr

Puh...

Ganz schön viel input für einen, der keine Ahnung von der Materie hat und nur ein bisschen vorlaut war,

getreu dem Motto "So schwer kanns nicht sein..."

Also nochmal auf Hochdeutsch...

Ich habe das Verzeichniss westfalia-schwimmen.de/intern bei 1und1 Passwort geschützt.

Daruafhin hat mir 1und1 das hier als .htaccess ins Verzeichniss "intern" geballert:

AuthType Basic
AuthName "Access to /westfalia-schwimmen/intern"
AuthUserFile /kunden/homepages/30/d680132706/htpasswd
Require user Mitglied

 

Eine htpasswd ist allerdings nicht vorhanden... *grübel*

 

Mein ursprünglicher Plan war es eine selbstgeschrieben .htaccess und eine selbstgeschriebene

.htpasswd ins Hauptverzeichnis des Webspace zu schreiben.

Das hatte ich auch schon und die Authentifizierung hat auch funktioniert.

Allerdings kam nach dem positiven login nicht die angeforderte Seite:

westfalia-schwimmen.de/intern/intern1.htm sondern eine von 1und1 generierte

404 Fehlerseite (nicht gefunden).

Ich habe dann die Idee mit der eigenen .htaccess verworfen, da ich keine Ahnung hatte

wo der Fehler lag. Daher der Umweg mit der Verschlüsselung übers Control Center.

Nachdem ich Eure Tips gelesen habe, glaube ich, es ist doch besser das ganze über eigene

.htaccess und .htpasswd zu meistern.

Also meine .htaccess hatte ich mir so ausgedacht: (Das sind keine Auszüge! Das ist alles was ich habe!)

(Wenn was fehlt, informiert mich bitte...)

 

AuthType Basic
AuthName "intern"
AuthUserFile /westfalia-schwimmen.de/intern/.htpasswd
require user Mitglied
<?xml version="1.0" encoding="UTF-8"?>
<configuration>   
   <system.web>
        <httpErrors errorMode="Custom">
            <clear/>
            <error statusCode="404" path="http://westfalia-schwimmen.de/404.htm" />
        </httpErrors>
   </system.web>
</configuration>

 

Das war´s auch schon mit meinem Latein.

Die .htpasswd hatte ich so gedacht:

 

Mitglied:(mit md5hash verschlüsseltes Passwort)

 

(Auch wieder nur diese Zeile in der ganzen Datei! Reicht das ?)

 

Ziel 1:

Ein Benutzer mit der Benutzerkennung "Mitglied" klickt auf Mitgliederbereich,

gibt seinen Benutzernamen "Mitglied" und das Passwort an und wird auf die Seite

westfalia-schwimmen.de/intern/intern1.htm geleitet.

 

 

Ziel 2:

Ein google-sucher klickt z.b. auf http://westfalia-schwimmen.de/imprint.html

und soll nicht auf die 1und1 - 404 Fehlerseite gelangen sondern auf die

westfalia-schwimmen.de/404.htm

 

 

 

Ist das so realisierbar ? Ich möchte sicher gehen, dass das so funktioniert, bevor ich den

Verzeichnisschutz im Control Center deaktiviere...

 

 

 


 

 

 

 

sebi45 schrieb am 22.05.2017 um 18:40 Uhr

Ach so, und wohin kommen die .htaccess und die .htpasswd eigentlich ?

Ins Hauptverzeichnis oder in den zu schützenden Bereich /intern ?

Ich habe übrigens gerade bemerkt, dass wenn man beim Login auf abbrechen drückt,

man auch auf die 1und1-404 kommt und nicht auf meine 404... :-(

 

Momentan habe ich diese web.config: (die es aber nicht tut...warum auch immer)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>   
   <system.web>
        <httpErrors errorMode="Custom">
            <clear/>
            <error statusCode="404" path="404.htm" />
            <error statusCode="500" path="404.htm" />
        </httpErrors>
   </system.web>
</configuration>

 

 

 

sebi45 schrieb am 22.05.2017 um 21:16 Uhr

@BeRo, @marboe Vielen Dank !

Ihr habt Euch so eine Mühe gegeben mir zu helfen und am Ende ist die Lösung so einfach

Ganz einfach:

Verzeichnisschutz bei 1und1 lassen( Verzeichnis: /intern) und eine neue .htaccess ins Hauptverzeichnis

damit:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /404.htm
ErrorDocument 404 /404.htm

 

Läuft ! Ich habe zwar keine Ahnung was das bedeutet !-f, !-d, RewriteRule... etc. aber läuft.

 

Danke nochmal...

 

marboe schrieb am 23.05.2017 um 07:43 Uhr

Sehr fein 😉

Da mir als ehemalige Leistungssportlerin Schwimmen eure Seite besonders am Herzen liegt ... mir ist noch ein Fehler aufgefallen:

Möchte man sich als Mitglied einwählen und klickt auf eine entsprechende Seite kommt leider noch der falsche 404. Den Grund suche ich in der Verzeichnisstruktur.
Deine Fehlerseite (die man definitiv noch "helfender" gestalten könnte) unter
http://westfalia-schwimmen.de/404.htm
wird mit "404.htm" nicht automatisch aufgerufen, weil die interne Seite ja in einen weiteren Ordner geschachtelt ist. --> http://westfalia-schwimmen.de/intern/intern1.htm

Entweder kannst du in der mir nicht geläufigen web.config-Datei den Link anpassen, oder eine .htaccess in den Ordner "/intern" legen, die einen entsprechenden Hinweis enthält. Fände ich wichtig, weil neugierige User, von denen es zuhauf gibt, ganz sicher auf den Button klicken - nur um festzustellen: Mist, doch ein guter Webmaster am Start 😎

 

Nicht berücksichtigt hast du bei deinem Vorgehen bisher die alten Links bei Google.
Nichtsdestotrotz: viel Spaß beim Training 😜. Gruß Marboe

sebi45 schrieb am 23.05.2017 um 16:56 Uhr

Also die alten links bei Google kommen auf die richtige 404. Zumindest die die mir begegnet sind. Kannst du dir bitte mal die.htacces oben angucken, ob die so richtig ist. Wenn ja versuche ich die nachher gegen den VerzeichnisSchutz von 1und1 auszutauschen und somit auch die internen 404er auf die rechte bahn zu lenken...

marboe schrieb am 23.05.2017 um 17:32 Uhr

Da web.config nicht mein Gebiet ist, kann ich hier nur raten. Sorry.

 

Erstelle im alten Projekt eine htaccess. Meines Wissens kannst du genau die gleiche nehmen, muss nur ins root der alten Page.

Wenn ich deine Ordnerstruktur falsch verstanden habe, müsstest du uns hier mehr Infos geben. Eine htaccess gilt immer für den Ordner indem sie liegt und die nachfolgenden.

Musst du eins nach vorne springen (bildlich gesprochen) kannst du den link anpassen oder halt die htaccess nochmal in den übergeordneten ordner.

 

Wenn du 'nur' userorientiert dafür sorgen möchtest, daß man immer schön auf deinen Seiten bleibt, ist das Vorgehen so ok. Wäre dir das Listing bei google wichtig, müssten noch Weiterleitungen rein. Gruß marboe