Referrer-Spam blocken mit Apache und mod_rewriteKommentare
Ansicht der Kommentare:
(Linear | Verschachtelt)
Hallo Jens,
inwieweit bremsen eine Reihe solcher RewriteCond - Regeln eigentlich den Apache? Bis zum nächsten PHPUGS - Treffen. Grüße Thomas
Umsonst ist nix ;-)
Wirklich aussagekräftige Performance-Messungen habe ich selber aber noch keine gemacht. Generell ist es aber so, dass es, wie auch im Vortrag zu mod_rewrite [1] erwähnt, einen Unterschied macht, ob man RewriteRules in .htaccess Dateien oder in der zentralen Apache-Conf erstellt, da .htaccess Dateien eben bei jedem Request neu eingelesen werden müssen, die Rules in der zentralen Apache-Conf aber nur einmal beim Start des Apaches. Da du in deiner Frage speziell nach den RewriteCond Bedingungen fragst; Diese werden ja "nur" geprüft, wenn das Pattern der zugehörigen RewriteRule passt. D.h. wenn die Pattern der Rules nicht zu allgemein sind, werden die Conditions nicht bei jedem Request geprüft, kosten also nur bei den Requests, für die das entspr. Pattern passt. Meine generelle Empfehlung zu RewriteRules ist aber ganz klar: Keep it simple! Und das weniger aus Performance Sicht, als vielmehr aus der Sicht des Admins der ein zu komplexes Rule-Set nicht pflegen oder debuggen will ;-) [edit] ich bin davon ausgegangen der Kommentar bezieht sich auf den Vortrag... Nunja, meine Antwort ist zwar nicht falsch, aber da hier ja praktisch nur RewriteCond Einträge ausgewertet werden, ist der Hinweis auf die "nicht zu allgemeinen Rules" hier eher fehl am Platz. [1] http://www.handcode.de/blog/archives/49-PHP-User-Group-Stuttgart-Treffen,-Maerz-2008.html
Danke für die Info. Wenn die Anzahl der RewriteCond nicht überhand nimmt, wird es kaum spürbar langsamer werden, denke ich mal. Einsatzort kann sowohl die .htaccess, als auch die Apache-conf sein.
Am besten, ich probiere es mal aus.
Ein paar Conditions wirst du kaum, bzw. gar nicht merken. Es ist aber immer besser/schneller die Regeln in der Apache-Conf zu definieren, da der Apache .htaccess Dateien fuer jeden Request erneut einlesen muss (kein Cache) und je nach Regel auch noch einen internen SubRequest absetzt.
Am Besten mit "AllowOverride None" .htaccess Files komplett verbieten. Dann (er)spart man dem Apache schon die Suche nach diesen im Filesystem. siehe auch: http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride |
Aufgenommen: Jul 01, 23:27