Sitemap für die RGB Farben
Ich bin ja immer für Superlativen zu haben. Deshalb hatte ich mir auch überlegt wie gestalte ich eine Sitemap für die Suchmaschinen für alle Farben aus dem RGB Farbraum. Eigentlich kein grosses Werk mit PHP einen Sitemapindex mit 4096 Sitemaps zu erstellen. Also befindet sich dann in jeder Sitemap dann 4096 Angaben zu weiteren Seiten. Insgesamt ergibt das dann 16777216 Seiten für jeden Farbwert aus dem RGB Farbraum.
Nachdem ich für jede Farbe aus dem RGB Farbraum Informationen bereitgestellt hatte und schon einige Seiten unglücklicherweise indexiert waren habe ich den Sitemapindex dann mal veröffentlicht. Nach knapp 2 Wochen wird dann aber einem bewusst das sowas nur dazu führt unnötige Datenmengen zu übertragen.
Wahrscheinlich wird es jetzt viele Ungläubige geben, aber mehr Zeilen an PHP sind nicht nötig um den Sitemapindex und die entsprechenden Sitemaps zu erstellen.
Der Sitemapindex für die RGB Farben
Die Anzahl von 4096 Sitemaps in dem Sitemapindex erfolgte nach praktischen Versuchen im Vorfeld.
error_reporting(E_ALL);
function rgbzuhex($a) {$b = sprintf("%03s",dechex($a));return $b;}
ob_start();
echo '<?xml version="1.0" encoding="UTF-8" ?>';
echo '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
for ($i=0;$i<=4095;$i++) { echo '<sitemap><loc>http://joerghuelsermann.de/sitemap/'.rgbzuhex($i).'</loc></sitemap>'; }
echo '</sitemapindex>';
$output = ob_get_clean();
$etag = '"'.dechex(getmyinode()).'-'.dechex(mb_strlen($output,'UTF-8')).'-'.dechex(getlastmod()).'"';
header('Etag: '.$etag);
header('Content-Type: application/xml; charset=UTF-8');
header('Last-Modified: '.gmdate('r',getlastmod()));
if (isset($_SERVER['HTTP_IF_NONE_MATCH']) and $_SERVER['HTTP_IF_NONE_MATCH'] == $etag) {header('Status: 304');}
else {echo $output;}Die 4096 Sitemaps für die RGB Farben
Die Priorität wurde bewusst auf so niedrig wie möglich gesetzt. Nach den Beobachtungen könnte man auf diese Angabe verzichten.
error_reporting(E_ALL);
function rgbzuhex($a) { $b = sprintf("%03s",dechex($a));return $b; }
$sitemap = $_GET['s'];
$datum = gmdate('c', filemtime('../farbe/datei.php'));
ob_start();
echo '<?xml version="1.0" encoding="UTF-8" ?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
for ($i=0;$i<=4095;$i++) {
echo '<url><loc>http://joerghuelsermann.de/farbe/'.$sitemap.rgbzuhex($i).'</loc>
<lastmod>'.$datum.'</lastmod>
<changefreq>yearly</changefreq>
<priority>0.0</priority></url>';
}
echo '</urlset>';
$output = ob_get_clean();
$etag = '"'.dechex(getmyinode()).'-'.dechex(mb_strlen($output,'UTF-8')).'-'.dechex(getlastmod()).'"';
header('Etag: '.$etag);
header('Content-Type: application/xml; charset=UTF-8');
header('Last-Modified: '.gmdate('r',max(getlastmod(),filemtime('../farbe/datei.php'))));
if (isset($_SERVER['HTTP_IF_NONE_MATCH']) and $_SERVER['HTTP_IF_NONE_MATCH'] == $etag){header('Status: 304');}
else {echo $output;}Die htaccess für die Sitemaps der RGB Farben
Simpel und recht einfach kann man reguläre Ausdrücke nun nutzen um per htaccess die PHP Datei für die Sitemaps anzusprechen.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^sitemap/([a-f0-9]{3})$ /sitemap/sitemap.php?s=$1 [QSA]
</IfModule>
Wir modifizieren die htaccess Datei um die Sitemaps auf zauberhafte Weise verschwinden zu lassen, nachdem man feststellt wie unsinnig der gesamte Gedanke war.
RewriteRule ^sitemap/([a-f0-9]{3})$ - [G]