Hallo Thomas,
Ich bin vielleicht ein Träumer :) aber gäbe es eine Möglichkeit, sowas zu programmieren?
In JavaScript leider nicht bislang, aber in Perl als CGI-Script.
Solange du sonst nix hast, kannst du deine Links mal so setzen:
<a href="http://www.teamone.de/cgi-local/url.pl?http://www.nicht-vorhanden.de/http://www.yahoo.de/">Link</a>
Zuer Erklaerung:
der Link ruft ein Script hier auf dem Server auf (http://www.teamone.de/cgi-local/url.pl). Das Script bekommt hinter dem Fragezeichen einen Parameterstring uebergeben. Der besteht aus zwei beliebigen URLs, getrennt durch einen Senkrechtstrich .
Die erste der beiden URL ist die, die eigentlich verlinkt werden soll. Die zweite URL wird fuer den Fall aufgerufen, falls die erste nicht existiert. Man koennte die zweite URL also als eine Art "persoenliche 404-Abfangseite" betrachten. Man koennte als zweite URL z.B. eine eigene Seite angeben, die Auskunft darueber gibt, dass der eigentliche Link nicht mehr vorhanden ist. Oder auch einfach die URL der Seite, in der der Link steht - so bleibt der Anwender auf der Seite, wenn der Link nicht funktioniert.
Und damit du auch glaubst, dass es wirklich funktioniert, hier zum Anklicken:
http://www.teamone.de/cgi-local/url.pl?http://www.nicht-vorhanden.de/http://www.yahoo.de/
Und wenn du selber CGI und Perl hast und den TeamOne-Server nicht noch mehr belasten willst als er es eh schon ist, dann kopier dir den Source:
#!/usr/bin/perl
$input = $ENV{'QUERY_STRING'};
if($input eq "") {
print "Content-type: text/html\n\n";
print "<p>Fehler beim Aufruf</p>\n";
exit(0);
}
$input =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
($url,$errorurl) = split(//,$input);
use LWP::Simple;
if(head($url)) {
print "Location: $url\n\n";
}
else {
print "Location: $errorurl\n\n";
}
viele Gruesse
Stefan Muenz