Sie sind in Kategorie Blosxom

Brotkrumennavigation


Samstag, 08. August 2009

Blosxom-Plugin redirdoubleslash entfernt mehrfache Slashes

Schlagworte: , , ,
08.08.2009 · 17:25
Wenn Blogs betrieben werden, ergibt sich manchmal das Problem mehrfacher Slashes (Verzeichnistrenner, /) in den URL. Das kann zu unnötigen Umleitungen oder Ärgernissen bei Suchmaschinen führen.

Solche seltsamen URL könnten als Links auf anderen Webseiten gepostet sein oder so in Kommentaren aus Versehen oder boshafterweise eingegeben worden sein. Suchmaschinen behandeln oft URLs mit mehrfachen Slashes wie duplicate content und bewerten dann den Link als wenig wichtig.

Für Blosxom habe ich in Perl das Plugin redirdoubleslash geschrieben, das solche mehrfachen Slashes entfernt.

Plugin redirdoubleslash

Das Plugin leitet URLs mit mehrfachen auf eine gesäuberte URL mit einfach vorkommenden Slashes um.

Dazu muss einfach nur in der start-Methode des Plugins die URI umgeschrieben werden, ein Redirect an den Server ausgegeben werden.

Code

Der relevante Code sieht dann so aus:

### falls Debugausgabe ins Serverlog gewünscht wird, auf 1 setzen
my $DEBUG = 0;

### Methode start des Plugins
#
# wird ganz zu Anfang, wenn das Plugin lädt, aufgerufen

sub start {
    # URL abfragen und wenn keine mehrfachen / vorhanden sind, Plugin beenden
    my $uri = $ENV{'REQUEST_URI'};
    return 0 if $uri !~ /\/\//;

    # mehrfache / in URL zu einfachen ersetzen
    $uri =~ s/\/+/\//g;    

    # URL für Weiterleitung erzeugen
    my $loc = (defined $ENV{'HTTPS'} ? 'https' : 'http') 
              . '://' 
              . $ENV{'HTTP_HOST'}
              . $uri;
    
    # HTTP-Header für Redirect senden
    print "Status: 301 Moved Permanently\n",
          "Location: $loc\n", 
          "\n";
    
    # Zum Debuggen Ausgabe
    warn ("Plugin " . __PACKAGE__ . ": Redirected URL because of multiple slashes\n") if $DEBUG > 0;
    
    # Plugin beenden
    exit;
}

Der komplette Code ist einfach im Plugin selbst nachzulesen.

Installation

Das heruntergeladene Plugin muss einfach in 0000redirdoubleslash umbenannt werden (damit es in der Ladereihenfolge der Plugins als erstes startet) und ins Pluginverzeichnis von Blosxom kopiert werden.

Beim nächsten Aufruf des Blogs ist es dann aktiv.

Download

Das Plugin ist im Repo als Datei redirdoubleslash zu finden.

Informationen zu Blosxom und Blosxom-Plugins

Autor: GwenDragon · Kategorie Blosxom · Permalink · Kommentare (0) · Kommentar schreiben

Kommentar für Blogeintrag

Kommentar

Mit * gekennzeichnete Felder müssen angegeben werden.



(Textformatierung in Markdown möglich)

Hinweis zum Datenschutz

Falls es Probleme mit Kommentaren/Trackbacks gibt, bitte ich um eine Beschreibung per E-Mail.

TrackBack-URL: http://gwendragon.de/blog/Web/Webapplikationen/Blosxom/slash-entfernen-plugin-redirdoubleslash.html/trackback

↑Artikel