VPNwelt.com sucht Feedback Wie der Name schon sagt handelt es sich um eine Review Website für…
von: florian.berg.privat
Versuch Backlinks oder Keywords zu erstellen. Dein Content muss auch gut sein. Hier ein Artikel das…
von: welkercarmen5
Hallo
Was muss ich alles beachten wenn ich aus einer Datenbank eine Sitemap automatisch erstellen möchte?
Gzip Komprimierung und Header der die Datei als application/xml ausweist sende ich schon mit!
xml als Endung funktioniert bei mir nicht ! Gibt es noch andere Möglichkeiten als eine php Endung?
Gibt es sonst noch was zu beachten?
Jetzt kümmere ich mich erst mal noch darum das ich Lastmod in der Sitemap noch angebe!
Gruß
Jörg
joerg schrieb:
xml als Endung funktioniert bei mir nicht ! Gibt es noch andere Möglichkeiten als eine php Endung?
Warum sollte .xml nicht funktionieren?
Entweder jagst du deine .xml-Datei mit dem PHP-Code drin durch den PHP-Interpreter, oder zu machst ein URL-Rewriting. Beides ist über .htaccess zu lösen.
In beiden Fällen kannst du die "xml" als Endung haben.
XML-Datei mit PHP parsen:
[html]<FilesMatch "^sitemap.xml$">
SetHandler application/x-httpd-php
</FilesMatch>[/html]
Einfach deine .php-Datei in sitemap.xml umbenennen.
URL-Rewriting:
[html]RewriteEngine on
RewriteRule ^(.*)sitemap.xml$ $1sitemap.php[/html]
Hallo Florian
Danke für die Information!
Das bedeutet dann wohl bei mehreren Dateien das ich jede in der htaccess namentlich angeben muss!
Kann es sein das die geschicktere Möglichkeit ist die xml Datei mit PHP zu parsen?
Was passiert eigentlich wenn ich eine xml Datei mit PHP parse die normal erstellt wurde?
Gruß
Jörg
joerg schrieb:
Kann es sein das die geschicktere Möglichkeit ist die xml Datei mit PHP zu parsen?
Ich mache es so, aber ob es die geschicktere ist, kann ich nicht sagen.
joerg schrieb:
Was passiert eigentlich wenn ich eine xml Datei mit PHP parse die normal erstellt wurde?
Falls du die shorttags aktiviert hast, bekommst du \'nen Parse Error wegen dem <?xml .. ?>
Raptor schrieb:
Falls du die shorttags aktiviert hast, bekommst du \'nen Parse Error wegen dem <?xml .. ?>
Deshalb sollte man das auch lassen (die shorttags zu aktivieren und zu schreiben).
Gérard
Hallo
Der Weg der bei mir nun funktioniert sieht so aus!
[html]
<Files sitemap.xml>
SetHandler x-httpd-php5
</Files>
[/html]
Gruß
Jörg
Der Vollständigkeit halber: Eine Alternative gibt es noch, man ruft für alle nicht existierenden Dateien eine PHP-Datei auf und übergibt den Namen der Datei als QueryString an die PHP-Datei.
In der PHP-Datei kann man dann anhand des QueryStrings entscheiden, ob man eine Fehlerseite zurückgibt oder z.B. eine XML-Datei erzeugt. Die dazugehörige htaccess sieht so aus:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Das ganze macht aber IMHO erst dann Sinn, wenn man mehr als nur ein paar XML-Dateien dynamisch erzeugen will.
Hallo
So als kleine Bemerkung zum Abschluß. Ich habe jetzt mehrer Abfragen aus der Datenbank gemacht und die als php Dateien abgespeichert!
Dann habe ich daraus einen Sitemap Index erstellt und den in den GWT angemeldet.
Von den 27 einzelnen Sitemaps sind keine Stunde später 9 mit der Anzhal der indexierten Seiten angegeben!
3 von den Sitemaps haben mehr als 100 Einträge davon ist eine mit mehr als 600 auch überprüft worden!.
Gruß
Jörg
Hallo Jörg
Behandle die xml Datei genau wie eine normale Textdatei oder jede andere x-beliebige Datei.
Mit PHP kannst du Dateien anlegen, öffnen, beschreiben und schließen (speichern).
In einem früheren Thema habe ich da doch jemand geholfen und eine fast fertige Lösung vorgestellt - finde das nur leider nicht mehr, da ich in "Forum->eigene Themen" nicht blättern kann - what ever
Am besten beginnst du so:
$varSitemap = \'<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="gss.xsl"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
\';
Danach ließt du deine Datenbank aus.. und setzt am besten in einer WHILE folgendes ein..
$varSitemap .= \'<loc><url>
deine-seite.de/thema/\' . $row->id (oder Link) .\'.html
</url></loc>Hallo Marcus
Ich bin ja schon fertig damit! Ich habe in dem Fall mein Wiki auf Basis Mediawiki abgefragt!
$suche[1] = \'&\';
$ersetzen[1] = \'%26\';
$suche[2] = \'ä\';
$ersetzen[2] = \'%C3%A4\';
$suche[3] = \'Ü\';
$ersetzen[3] = \'%C3%9C\';
$suche[4] = \'ü\';
$ersetzen[4] = \'%C3%BC\';
$suche[5] = \'ß\';
$ersetzen[5] = \'%C3%9F\';
$suche[6] = \'ö\';
$ersetzen[6] = \'%C3%B6\';
$suche[7] = \'é\';
$ersetzen[7] = \'%C3%A9\';
$suche[8] = \'Ä\';
$ersetzen[8] = \'%C3%84\';
$abfrage = "SELECT page_title , page_touched , page_namespace FROM prefix_page WHERE page_namespace =0 ORDER by page_title ASC";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo \'<url>\';
echo \'<loc>
Ah sehr schön
So geht das auch,.. ich nehme zum Umlaute decodieren html Codes, kein ASCII, aber denke das wird den Suchmaschinen sicher nicht jucken ..
Super! Und irgendwann baust du das sicher noch auf deine Menüs aus
Kannst ja mal den Post aktuell halten wieviel von wieviel Seiten dann im index sind laut WMP.. interessiert mich, denn bei mir hat es 4 Monate gedauert bis ein dreiviertel im Index waren - nun kommen bei mir noch rund 26.000 Links nochmal hinzu, mal schauen wie lang das dauert.
Mfg, Marcus
Beitrag erstellen
EinloggenKostenlos registrieren