Wordpress, Favicons Und 404er

Ist man darauf angewiesen, dass der Server, auf dem das eigene Wordpress läuft, dieses auch schnell und stabil macht, dann stolpert man früher oder später vermutlich über ein Problem, dass Wordpress in der Standardkonfiguration mit Favicons hat. Wordpress arbeitet mit RewriteRules um schön aussehende URLs der Blogeinräge zu haben. Diese RewriteRules sind so gestrickt, dass sich auch greifen, wenn der Browser ein eine www.domain.tld/favicon.ico verlangt. Wenn Internetseiten im HTML-Quelltext keinen Favicon festlegen, dann probieren gängige Browser eine direkt im Hauptverzeichnis der Domain zu finden. In diesem Fall versucht Wordpress intern einen Artikel zu finden, der dem favicon.ico entspricht, (was es in dem meisten Fällen nicht funktioniert). In jedem Fall muss also Wordpress zwei mal die ganze Leier der Authentifizierung und diverse Datenbankabfragen machen nur um dann zu sagen, dass ein Artikel favicon.ico nicht existiert. Es gibt verschiedene Möglichkeiten dieses zu Verhindern.

  1. ein Favicon erstellen und im Theme einrichten
  2. die .htaccess so bearbeiten, dass die RewriteRule bei favicon.ico nicht greift

Bei zweiterem würde der Browser eine (von Apache oder einem anderen http-Server erstellte) 404-Fehlermeldung bekommen, was deutlich schneller und Ressourcenschonender ist.

.htaccess
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

und mache daraus:

.htaccess
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteCond %{REQUEST_FILENAME} !favicon.ico
RewriteRule . index.php [L]