Apache rewrite outside DocumentRoot

Usually if we want to handle a not found error we have to use a roule like this:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /notfound.php [L]

Today I’ve met an interesting case. The VirtualHost was setup only for provide media and the error handler script was outside the DocumentRoot.

Devs tried this conf, but of course, didn’t work.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* ../notfound.php [L]

The correct conf is use an Alias in VirtualHost configuration and keep the original rewrite roule in htaccess.

Alias /notfound.php /var/www/site/htdocs/notfound.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /notfound.php [L]

Un blog Fast ‘n Furious

Stavo provando qualche test di velocitá con il sito http://www.webpagetest.org testando blog.alorenzi.eu ed altri due siti wordpress hostati rispettivamente su wordpress.com e su aruba.

Un blog hostato qui impiega 3.9s a renderizzare la prima volta, su wordpress.com 6.9s e su aruba 15.2s.

Inoltre, rivisitando la pagina il mio blog impiega 0.9s, wordpress.com 3.4s e aruba 3.5s.

Insomma, ‘sto giocattolino proprio ‘na chiavica non é!

Apache fallback VirtualHost

Oggi ho aggiunto nel mio dns *.alorenzi.eu come CNAME ad “alorenzi.eu.”. Questo comporta che ora qualsiasi cosa “butto” come dominio di terzo livello mi rimanderá al mio apache.

Purtroppo, se non configuravo il dominio di terzo livello correttamente mi ributtava sempre al wordpress generando un errore strano.
Ho quindi creato un VirtualHost di fallback messo prima di tutti gli altri configurato in questo modo:
<VirtualHost *:80>
DocumentRoot /var/www/notfound/
ErrorLog "logs/notfound_error_log"
CustomLog "logs/notfound_access_log" combined
</VirtualHost>

In /var/www/notfound ho messo un index.html con la scritta “SITE NOT FOUND”.

Ora, qualsiasi cosa butto sul mio web server butterá sempre “SITE NOT FOUND”, a meno di averlo configurato correttamente.

Provate con asd.alorenzi.eu o cacca.alorenzi.eu o quello che volete voi! 😀