Automatische Weiterleitung von einer 404 ErrorPage

Diskutiere mit über: Automatische Weiterleitung von einer 404 ErrorPage im Web-Programmierung Forum

  1. joedelord

    joedelord Thread Starter MacUser Mitglied

    Beiträge:
    481
    Zustimmungen:
    0
    Registriert seit:
    12.12.2002
    Weiterleitung mit mod_rewrite

    Hallo liebe Macuser

    Da die Homepage an der ich gerade arbeite, eine nicht wirklich benutzerfreundliche Ordnerstruktur aufweist, ist es mir ein anliegen trotzdem eine einfache Funktionalität zu gewährleisten. Es geht um folgendes

    Bsp:
    Es gibt inerhalb der Homepage einen Bereich "Musik". Die deutsche Variante davon befindent sich in domain/de/musik/
    Um einen schnellen und einfachen Zugriff auf diesen Bereich zu ermöglichen soll der Benutzer automatisch zu dieser Adresse weitergeleitet werden, wenn er domain/musik eingibt.

    Eine umständliche Möglichkeit wäre, für jedes Schlüsselwort einen eigenen Ordner anzulegen mit einer index.htm Datei die dann die Weiterleitung vornimmt. Diese Variante ist jedoch sehr arbeitsinteniv und schwer zu warten.

    Wie kann ich mein Vorhaben lösen? Ich hab schon ein bischen mit .htaccess hrumexperimentier aber noch keine sinnvollen Ergebnisse erhalten.

    Wer kann helfen?

    lg, joedelord
     
    Zuletzt bearbeitet: 13.11.2005
  2. Difool

    Difool Frontend Admin

    Beiträge:
    8.142
    Medien:
    29
    Zustimmungen:
    858
    Registriert seit:
    18.03.2004
    h joedelord,

    hast du Zugriff auf die error-page?
    Wenn ja, leg doch da die direkte Weiterleitung rein.

    Gruß Difool
     
  3. joedelord

    joedelord Thread Starter MacUser Mitglied

    Beiträge:
    481
    Zustimmungen:
    0
    Registriert seit:
    12.12.2002
    mein Problem ist, dass ich anscheinend nicht herausfinden kann welcher Seitenaufruf die 404 Seite ausgelöst hat. es wäre möglich durch ein Script die Server log auszuwerten und damit heruszufinden wohin der Benutzer unterwegs war, diese Möglichkeit schein mir aber ein bischen zu rechenintensiv zu sein. Eventuell würden sich auch fehler ergeben wenn zwei benutzer zeitgleich ungültige Adressen aufrufgen.

    lg, joedelord
     
  4. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Im .htaccess-File:
    Code:
    Redirect /musik http://www.domain.de/de/musik/
    So weit ich weiß geht das aber nur case sensitive. Für Eingaben wie MuSik müsstest Du mod_rewrite (falls verfügbar) bemühen.
     
  5. joedelord

    joedelord Thread Starter MacUser Mitglied

    Beiträge:
    481
    Zustimmungen:
    0
    Registriert seit:
    12.12.2002
    Vielen Dank für die Hilfe, Problem gelöst und zwar wie folgt;

    Ich habe nun in meinm Stammverzeichnis eine .htaccess Datei liegen in dieser mit dem mod_rewrite Modul die Weiterleitungen passieren. Nachdem ich anfangs grobe Probleme damit hatte ist es jetzt für meinen geschmack ganz nett gelöst. und zwar

    Code:
    # .htaccess im Stammverzeichnis
    #
    # Aktivierung der RewriteEngine
    RewriteEngine on
    # setzen der einzelnen Rules, eine pro Zieldatei zB bar.htm
    RewriteRule ^([Ss]uchstr.*|[Ss]uschstring2)$ http://www.domain.at/foo/bar.htm [R=301]
    
    und im direkten Unterverzeichnis foo wird die RewriteEngine wieder deaktiviert um Endlosschleifen und damit 500er Fehlermeldungen zu verhindern
    Code:
    # .htaccess in Stammverzeichnis/foo/
    #
    # Deaktivierung der RewriteEngine
    RewriteEngine off
    
    Erklärung:
    Die RewriteRule vergleicht die Suchstrings (als RegEx) mit der angeforderten Url und leitet sie dann entsprechend weiter. Die Notierung von [R=301] bedeutet, dass es sich um einen externen redirect handelt, wobei die nummer dem HTTP Statuscode entspricht (301 = permanent verschoben, gültig sind 300-400)

    Link dazu:
    modrewrite.de

    nochmals Danke, joedelord
     
    Zuletzt bearbeitet: 13.11.2005
  6. dms

    dms Gast

    Geht aber auch einfacher.

    Erstelle das Verzeichnis musik und leite alle Anfragen auf den Ordner /de/musik um. Lege im Ordner /musik eine .htaccess an mit folgendem Inhalt:
    Code:
    RewriteEngine on
    RewriteRule ^(.*)$ /de/musik/$1
    Du könntest auch noch eine Bedingung davor setzen und abfragen ob die Datei existiert. So könntest Du spezielle Dateien praktisch "überschreiben". Existiert die Datei, wird sie angezeigt. Existiert sie nicht, wird auf den Ordner /de/musik umgeleitet:
    Code:
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} ^.*/musik/$
    RewriteRule ^(.*)$ /de/musik/$1
    
     
  7. joedelord

    joedelord Thread Starter MacUser Mitglied

    Beiträge:
    481
    Zustimmungen:
    0
    Registriert seit:
    12.12.2002
    @dms:
    Wenn ich das richtig verstehe, dann ist das die Möglichkeit die ich vermeiden wollte. Diese dezentrale Variante war mein erster Zugang (Weiterleitungen mit PHP). Bei Änderungen der Seite müsste man aber auch in jedem ordner die einzelnen .htaccess files ändern, was auf dauer unübersichtlich wird. deshalb habe ich für die oben beschribene zetralisierte Variante entschieden.

    lg, joedelord
     
  8. dms

    dms Gast

    Ok, das Gegenargument gegen meine Variante verstehe ich, jedoch sehe ich kein Pro-Argument für Deine Variante.

    Vielleicht stehe ich auf dem Schlauch, aber so wie ich das jetzt verstehe musst Du bei einer Änderung der Seite sowohl alle Suchstrings (das dürften die kompletten Pfade zu jeder einzelnen Datei sein, oder?) anpassen sowie die Ziel-URI.
     
  9. joedelord

    joedelord Thread Starter MacUser Mitglied

    Beiträge:
    481
    Zustimmungen:
    0
    Registriert seit:
    12.12.2002
    Nach meinen überlegungen, sollte man Änderungen innerhalb von ca 2 minuten durchführen können. Ich poste hier mal den Inhalt der original .htaccess Datei;

    Code:
    # oskar_aichinger root
    
    ErrorDocument 404 http://www.oskaraichinger.at/error/404.xhtml
    
    # mod_rewrite
    RewriteEngine on
    
    # Biografie, index.htm (Kurzbiografie)
    RewriteRule ^([Bb]iografie|[Bb]iographie|[Bb]io|[Aa]ichinger|[Oo]ssi|[Oo]skar)$ http://www.oskaraichinger.at/de/biografie/ [R=301]
    # Biografie, fotos.htm
    RewriteRule ^([Ff]oto.*|[Bb]ild.*)$ http://www.oskaraichinger.at/de/biografie/fotos.htm [R=301]
    # Biografie, links.htm
    RewriteRule ^([Ll]ink.*)$ http://www.oskaraichinger.at/de/biografie/links.htm [R=301]
    # Biografie, kontakt.htm
    RewriteRule ^([Kk]ontakt.*)$ http://www.oskaraichinger.at/de/biografie/kontakt.htm [R=301]
    # Biografie, presse.htm
    RewriteRule ^([Pp]resse|[Mm]edi.*)$ http://www.oskaraichinger.at/de/biografie/presse.htm [R=301]
    
    # Musik, index.htm (Werkverzeichnis)
    RewriteRule ^([Mm]usik|[Ww]erk.*)$ http://www.oskaraichinger.at/de/musik/ [R=301]
    # Musik, diskographie.htm
    RewriteRule ^([Dd]isko.*)$ http://www.oskaraichinger.at/de/musik/diskographie.htm [R=301]
    
    # Aktuelles, index.htm (Aktuelle Bands & Projekte - ?berblick)
    RewriteRule ^([Bb]and.*|[Pp]rojekt.*|[Aa]ktuell.*)$ http://www.oskaraichinger.at/de/aktuelles/ [R=301]
    # Aktuelles, infos.htm
    # foo
    # Aktuelles, termine.htm
    RewriteRule ^([Tt]ermin.*|[Kk]onzert.*|[Aa]uftritt.*)$ http://www.oskaraichinger.at/de/aktuelles/termine.htm [R=301]
    # Aktuelles, neue_cds.htm 
    RewriteRule ^([Cc]d.*|[Pp]latte.*|[Ll][Pp])$ http://www.oskaraichinger.at/de/aktuelles/neue_cds.htm [R=301]
    
    Erklärung:
    zu jeder vorhandenen Seite gibt es eine RewriteRule. In dieser Rule sind alle Stichworte beschrieben, bei denen automatisch zur gewollten Seite weitergeleitet wird.
    z.B: bei gibt man www.oskaraichinger.at/konzerte ein wird man automatisch auf www.oskaraichinger.at/de/aktuelles/termine.htm weitergeleitet. also fast Usability pur!

    Ich hoffe, dass dieses Beispiel die Sache ein bischen verdeutlicht.
    Ich bin jederzeit für Tips und Hinweise offen.

    lg, joedelord
     
  10. dms

    dms Gast

    Ah, dann habe ich die Eingansfrage wohl falsch verstanden. Mit den ganzen Shortcuts macht das so natürlich Sinn.
     
Die Seite wird geladen...
Ähnliche Themen - Automatische Weiterleitung einer Forum Datum
Frameweiterleitung und Iphone Web-Programmierung 17.10.2016
Weiterleitung auf pseudoordner per htaccess Web-Programmierung 17.12.2010
.htaccess Weiterleitung Web-Programmierung 04.08.2010
Automatische Iframe Skalierung Safari Web-Programmierung 25.02.2009
DRINGEND: Automatische Weiterleitung mittels PHP? Web-Programmierung 23.09.2004

Diese Seite empfehlen

Benutzerdefinierte Suche