joerghuelsermann.de Sitemap für die RGB Farben

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.

Aufbau des Sitemapindex
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.

Aufbau der Sitemap
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.

htaccess zum Umleiten
<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.

Modifizierung
RewriteRule ^sitemap/([a-f0-9]{3})$ - [G]