Intelligente Meta-Tags
Geschrieben von: Dario Nuevo Wir alle wissen, daß Meta-Tags für eine gute Indexierung in den Suchmaschinen wichtig sind. Doch leider ist es so, daß man beim Erstellen einer Homepage nicht immer Zeit findet, bei jedem Dokument die Meta-Tags dementsprechend anzupassen. Aus diesem Grund möchte ich Ihnen mit diesem Artikel eine bequeme Art und Weise vorstellen, wie wirklich jedes Dokument in Ihrem Projekt die passenden Meta-Tags bekommt. Realisieren werden wir dies mit einem Script, welches wir per Include in alle Dateien der Website einbauen werden. Dieses Script versorgt jede Datei beim Aufruf mit den jeweiligen Meta-Tags, welche wir vorher in eine Datenbank eingetragen haben. Die Identifizierung der Dateien erfolgt anhand der Umgebungsvariable PATH_INFO. Die Tabelle tMetaUnsere vordefinierten Meta-Tags befinden sich in der Tabelle tMeta der Access Datenbank meta.mdb, welche folgende Struktur aufweist:
Erläuterung der einzelnen Felder: Website Struktur für das Artikelbeispiel: getmeta.asp und connection.asp sind im Webroot. veilchen.asp und arangata.asp befinden sich im Unterverzeichnis /blumen. meta.mdb liegt im Unterverzeichnis /MetaDB. Um die Datenbank leicht auf SQL-Server portieren zu können, befindet sich im Unterverzeichnis /MetaDB noch zusätzlich das SQL-Script meta.sql. Das AusgabescriptDie ASP Datei getmeta.asp enthält das Script, welches beim Aufruf einer Seite die Meta-Tags hineinschreibt. Zu diesem Zweck wird es in alle Dateien inkludiert. Vorzugsweise sollte die Datei im Rootverzeichnis der Website platziert werden, damit man es absolut inkludieren kann (also mit /getmeta.asp). Die Parameter für die Datenbankverbindung enthält hier die connection.asp Datei: <% Set Conn = Server.CreateObject("ADODB.Connection") Set objRSMeta = Server.CreateObject("ADODB.Recordset") Conn.Provider="Microsoft.Jet.OLEDB.4.0" Conn.Open Server.MapPath("/MetaDB/meta.mdb") %> Und hier der Quelltext von getmeta.asp: <% ' Server-Variable PATH_INFO reinholen File = Request.ServerVariables("PATH_INFO") ' DB-Abfrage, Auswahl von Meta-Tags zum aktuellen Dokument (anhand Variable File) Set objRSMeta = Conn.Execute("SELECT * FROM tMeta WHERE fDocument='" & File & _ "' ORDER BY fString ASC") While Not objRSMeta.EOF Response.Write "<meta name=""" & objRSMeta("fString") & """ content=""" & objRSMeta("fValue") & """>" & vbCrLf objRSMeta.MoveNext Wend ' Aufräumen Set objRSMeta = Nothing Conn.Close %> Wie bereits erwähnt, identifizieren wir die Datei -welche die Meta-Tags anfordert- anhand der Server-Umgebungsvariable PATH_INFO. Diese Variable beinhaltet immer den vollen Pfad zum aktuellen Script inklusive dem Scriptnamen selbst. Im Dokument www.aspheute.com/beispiel/testemal.asp hätte PATH_INFO den Wert "/beispiel/testemal.asp". PATH_INFO ist also in jedem Dokument anders, was uns sehr dienlich ist. Die Abfrage liefert uns alle Meta-Tags aus der Datenbank, welche dem aktuellen Dokument zugeteilt sind. Schlußendlich geben wir die Meta-Tags mit einer While-Schleife aus und räumen auf. Die EinbindungHaben wir getmeta.asp erstmal erstellt, können wir die Datei in jede Datei mit einer include Anweisung referenzieren. Der Aufwand ist sehr gering: <!--#include virtual="/getmeta.asp" --> Beachten Sie, daß Meta-Tags innerhalb des <head>-Bereiches eines Dokumentes stehen müssen. Folglich muß sich auch die include Anweisung dort befinden. Ein praxisnahes BeispielTheorie mochte ich nie gerne, am besten sieht man den Sinn immer in der Praxis. Hier ein konkretes Beispiel, wie das Ganze in einem produktiven Umfeld aussehen könnte. Nehmen wir an, wir sind Webmaster von www.blumen-guide.org. Als Beispieldokument nehmen wir www.blumen-guide.org/blumen/veilchen.asp. Folgende Einträge befinden sich in der Tabelle tMeta der meta.mdb Datenbank: Nun der Sourcecode für die veilchen.asp Datei im Originalzustand, wie sie auf dem Webserverunterverzeichnis /blumen abgelegt ist: <html> <head> <!--#include virtual="/getmeta.asp"--> <title>Blumen Guide - Verzeichnis</title> </head> <body bgcolor="white"> <h1>Das Veilchen</h1> lorem ipsum lari fari.. </body> </html> Beim Aufruf der Datei gibt nun getmeta.asp die Meta-Tags aus: <html> <head> <meta name="robots" content="follow"> <meta name="keywords" content="Veilchen porträt informationen blumen"> <meta name="description" content="Mehr Informationen über Veilchen"> <title>Blumen Guide - Verzeichnis</title> </head> <body bgcolor="white"> <h1>Das Veilchen</h1> lorem ipsum lari fari... </body> </html> SchlußbemerkungSie sehen also, auf diese Weise können wir alle Meta-Tags einer gesamten Website bequem in einer Datenbank verwalten. Der Vorteil dabei ist, daß der Besucher überhaupt nichts davon merkt. Auch für die Suchmaschinen ist das Resultat dasselbe, da auch sie immer die generierte Seite des Servers erhalten (inklusive den Meta-Tags). Diese Lösung stellt also einen kompletten und vollwertigen Ersatz für eine "manuelle" Meta-Tag-Indexierung dar. Ein kleiner Tip am Rande: Wenn Sie schon getmeta.asp in jedes Dokument einbinden, so nutzen Sie dies doch auch für weitere Tags, welche in jedem Dokument erscheinen sollen. Denkbare Erweiterungen wären z.B. noch der Dokumenttitel, ein Copyright-Hinweis, welcher auf jeder Seite aufscheinen sollte usw. Natürlich ist damit noch viel mehr möglich, aber das überlasse ich Ihrem Ermessen. Download des CodesKlicken Sie hier, um den Download zu starten. Verwandte Artikel
ADO und ASP - Datenbanken einmal näher betrachtet Wenn Sie jetzt Fragen haben...Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten. Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.
Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.
©2000-2006 AspHeute.com |