Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!

Jetzt kostenlos registrieren

Sidemap generator?

Fragen zum Thema HTML und CSS können hier gestellt werden

Moderatoren: Basti, Guillermo, Ingo

Sidemap generator?

Beitragvon Patchie am 03.11.2011, 16:23

Hallo.

Ich bin offenbar zu dumm, aber wie und wozu brauche ich einen Sidemap generator?
Nur wegen der Suchmaschinen?

Wenn ja, wie wird so etwas erstellt? Ich habe Dreamweaver CS4, doch da ist nichts eingebaut das so etwas erstellen kann... :xx:
Hat Adobe so was nicht im Programm? Kann mir jemand einen einfaches und kostenloses Programm empfehlen?
Patchie
Mitglied
 
Beiträge: 263
Registriert: 18.06.2008, 17:22
Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!
 
Jetzt kostenlos registrieren

Re: Sidemap generator?

Beitragvon threadi am 03.11.2011, 21:11

Es gibt verschiedene Arten Sitemaps. Die Sitemap die für Menschen gedacht ist und auf der Webseite verlinkt ist (darüber finden Besucher ggfs. schneller Inhalte in tiefen Verschachtelungen). Und die Sitemap im SitemapXML-Format, welche man per robots.txt oder direkt bei den Suchmaschinen-Webmastertools anmelden kann. Diese unterstützen die Suchmaschine dabei zu erkennen wieviele und welche Seiten einer Webseite es gibt. Und Generatoren für letzteres gibt es doch einige, bist Du noch nicht fündig geworden?
https://www.google.com/search?q=sitemap+generator
threadi
Mitglied
 
Beiträge: 109
Registriert: 24.05.2010, 21:47
Wohnort: Leipzig

Re: Sidemap generator?

Beitragvon my-webdesigner.com am 03.11.2011, 22:02

Vielleicht hilft dir folgendes Script weiter.
Es sollte wöchentlich (täglich bei vielen Änderungen) per Cronjob aufgerufen werden.

Die drei Variablen am Beginn müssten entsprechend angepasst werden.
Falls es Fragen gibt, bitte ;)

Ich habe das Script vor über einem Jahr zusammengebastelt und bin nach wie vor zufrieden damit.

Code: Alles auswählen
<?php

$sitemap_file 
= "../sitemap.xml";
$sitemap_uri = "http://example.com/sitemap.xml";

$exclude = array(
    "http://example.com/wp-login"
);

error_reporting(0);
ignore_user_abort(true);

class Sitemap {

    private $xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">\n\n";
    private $res = array();
    private $base = "";
    private $urls = array();
    private $curl;
    private $filter = array();

    public function filter($filter) {
        if(is_array($filter)) $this->filter = $filter;
        else $this->filter[] = $filter;
    }

    public function getXml() {
        $this->crawl();
        $this->build();
        return $this->xml;
    }

    private function crawl() {
        $url = (
            (isset($_SERVER["HTTPS"]) && strtoupper($_SERVER["HTTPS"])!=="OFF")
                ? "https" : "http"
            )."://".$_SERVER["HTTP_HOST"]."/";
        $this->urls[$url] = true;
        $this->curl = curl_init();
        curl_setopt_array($this->curl,array(
            CURLOPT_HEADER => false,
            CURLOPT_FOLLOWLOCATION => false,
            CURLOPT_COOKIESESSION => true,
            CURLOPT_AUTOREFERER => true,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HEADER => true,
            CURLOPT_URL => $url
        
));
        $data = curl_exec($this->curl);
        if(preg_match("/<base[^>]+href=\"([^\"]+)\"/",$data,$matches)) {
            $this->base = rtrim($url,"/");
        }
        $this->recursiveSniff($url);
    }

    private function recursiveSniff($url,$level=0) {
        if(++$level>9) return;
        foreach($this->filter as $filter) {
            if(strstr($url,$filter)) return;
        }
        curl_setopt($this->curl,CURLOPT_URL,$url);
        $data = curl_exec($this->curl);
        $data = preg_split("/(\r\n|\r|\n){2}/",$data,2);
        $header = $data[0];
        $data = $data[1];
        if(!strstr($header," 200 OK")) return;
        $this->res[] = $url;
        $escaped = preg_quote($url,"@");
        preg_match_all("@(<a[^>]+href=\"([^\"]+)\"|<a[^>]+href='([^']+)')@",$data,$matches);
        foreach($matches as $matcha) {
            foreach($matcha as $match) {
                if(preg_match("/^(<a[^>]+href=\"([^\"]+)\"|<a[^>]+href='([^']+)')$/",$match,$submatch)) {
                    $match = $submatch[2];
                }
                if(!preg_match("/^https?\:\/\//",$match)) {
                    $match = $this->base."/".ltrim($match,"/");
                }
                $match = preg_replace("/#.*$/","",$match);
                if(!preg_match("@^$escaped@",$match) || isset($this->urls[$match])) continue;
                $this->urls[$match] = true;
                $this->recursiveSniff($match,$level);
            }
        }
    }

    private function build() {
        sort($this->res);
        foreach($this->res as $res) $this->xml.= "<url><loc>".$res."</loc></url>\n";
        $this->xml.= "</urlset>\n";
    }

}

$sitemap = new Sitemap;
if(
$exclude) $sitemap->filter($exclude);
$xml = $sitemap->getXml();
$changed = md5_file($sitemap_file)!==md5($xml);
file_put_contents($sitemap_file,$xml);
if(
$changed) {
    file_get_contents("http://www.google.com/webmasters/tools/ping?sitemap=$sitemap_uri");
    file_get_contents("http://api.moreover.com/ping?u=$sitemap_uri");
    file_get_contents("http://submissions.ask.com/ping?sitemap=$sitemap_uri");
}

?>


$sitemap_file ist der relative Pfad zur sitemap.xml. Dieses File sollte über Schreibrechte verfügen.
$sitemap_uri ist die URI, unter der die sitemap.xml aufgerufen werden kann.
$exclude (optional) legt URIs fest, die NICHT in der Sitemap erscheinen sollen.

Grüße,
Gerald
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien

Re: Sidemap generator?

Beitragvon Patchie am 04.11.2011, 16:32

Oh krass der code! :staun:

Ich werd mal versuchen das ding zu verstehen. :handbuch:

Sicher das Adobe nicht in der CS5.5 so ein Ding in Dreamwaver eingebaut hat? :roll:
Wäre dann viel einfacher...

Danke. :handbuch: :handbuch: :handbuch:
Patchie
Mitglied
 
Beiträge: 263
Registriert: 18.06.2008, 17:22

Re: Sidemap generator?

Beitragvon my-webdesigner.com am 04.11.2011, 19:00

Bzgl. Dreamweaver: Ich glaube nicht, habe dergleichen aber schon seit einigen Jahren nicht mehr verwendet.

Einfacher ist ehrlich gesagt dieses Script, das auch völlig automatisch arbeiten kann (via Cronjob).
Einfach mal auf den Server laden und manuell über den Browser aufrufen.
Zuvor die 3 Variablen am Beginn anpassen und schon sollte alles ganz automatisch "gecrawled" werden.

Das Script macht im Prinzip nichts anderes als ein Google Bot, nur dass dieser noch um einiges komplexer sein dürfte.

Gern geschehen ;)
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien

Re: Sidemap generator?

Beitragvon Patchie am 25.11.2011, 09:30

Noch mal eine Nachfrage zur sitemap.

Ist das dort nicht eine Sitemap die nur auf listen basiert?:
http://www.stuttgarter-zeitung.de/sitemap

Also bin ich doch flexibel in der Gestaltung einer Sitemap? Hab etwas gegooglet und da ist auch von einer xml sitemap die Rede.
Bin da jetzt etwas verwirrt... :roll:

Wenn es sich um eine Seite handelt, die selten erweitert wird, dann reicht doch auch eine Struktur mit verschachtelten Listen und absoluten Links?
Würde ich nämlich das bevorzugen, macht weniger Arbeit :roll:
Patchie
Mitglied
 
Beiträge: 263
Registriert: 18.06.2008, 17:22

Re: Sidemap generator?

Beitragvon my-webdesigner.com am 25.11.2011, 15:52

Lass mich das mit einem Zitat beantworten:

threadi hat geschrieben:Es gibt verschiedene Arten Sitemaps. Die Sitemap die für Menschen gedacht ist und auf der Webseite verlinkt ist (darüber finden Besucher ggfs. schneller Inhalte in tiefen Verschachtelungen). Und die Sitemap im SitemapXML-Format, welche man per robots.txt oder direkt bei den Suchmaschinen-Webmastertools anmelden kann. Diese unterstützen die Suchmaschine dabei zu erkennen wieviele und welche Seiten einer Webseite es gibt.


Grüße
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien

Re: Sidemap generator?

Beitragvon Patchie am 25.11.2011, 18:05

my-webdesigner.com hat geschrieben:Lass mich das mit einem Zitat beantworten:

threadi hat geschrieben:Es gibt verschiedene Arten Sitemaps. Die Sitemap die für Menschen gedacht ist und auf der Webseite verlinkt ist (darüber finden Besucher ggfs. schneller Inhalte in tiefen Verschachtelungen). Und die Sitemap im SitemapXML-Format, welche man per robots.txt oder direkt bei den Suchmaschinen-Webmastertools anmelden kann. Diese unterstützen die Suchmaschine dabei zu erkennen wieviele und welche Seiten einer Webseite es gibt.


Grüße


Ahhhh! :o0:
War schon 3 Wochen her... hatte ich vergessen :duckweg:
Hatte das dann auch erst mal zu den Akten gelegt (in meinem Hirn) und jetzt, wo das Projekt sich dem Ende neigt, wieder raugekramt.
Werds mit aber jetzt merken und mal die Gogole Sitemap tools probieren. :roll:
Patchie
Mitglied
 
Beiträge: 263
Registriert: 18.06.2008, 17:22


Zurück zu HTML/CSS

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast