Frag mich jetzt nicht wo das mal stand, aber einige hundert Rewrite-Regeln sollten sich eigentlich nicht bemerkbar machen. Es gab mal einen Artikel (in Englisch) zu diesem Thema, aber ich finde ihn leider nicht im Moment ... ich schau weiter![]()
Hallo Ihr Server Cracks!
Google brachte, wie so oft, widersprüchliche Resultate, deswegen wollte ich mal fragen, ob jemand von Euch persönliche Erfahrungen gesammelt hat.
Beeinträchtigt eine lange htaccess (ca. 150 RewriteConds) spürbar die Performance oder hat sonstige negative Auswirkungen?
Zugriff auf die httpd.conf besteht nicht, weshalb nur der Weg über die htaccess bleibt.
Danke und viele Grüße,
Andreas
#.Viele Grüße - Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
PHP Tutorials und kostenlose Scripts gibt's bei phpBuddy.eu
Follow phpBuddy on Twitter
LTFB - anfängerfreundliche Tutorials
.
Frag mich jetzt nicht wo das mal stand, aber einige hundert Rewrite-Regeln sollten sich eigentlich nicht bemerkbar machen. Es gab mal einen Artikel (in Englisch) zu diesem Thema, aber ich finde ihn leider nicht im Moment ... ich schau weiter![]()
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Das ist mal ein interessantes Thema. Aber eigentlich sind es ja zwei Themen:
1.) Wird die Ladezeit einer Webseite und/oder die Last des Webservers dadurch beeinflusst, ob die Rewrite-Regeln in einer .htaccess oder in der http.conf angesiedelt sind?
Ich denke es ist nicht egal. Es ist sicher nicht messbar, aber rein theoretisch sollte es länger dauern die .htaccess ständig einzulesen und auszuwerten, als es über eine http.conf zu machen.
Die http.conf wird einmal beim Starten des Apache eingelesen (quasi kompiliert). Danach wird die nicht mehr angefasst. Die .htaccess wird bei jedem HTTP-Request erneut eingelesen und interpretiert.
2.) Macht sich ein großes Regelwerk bemerkbar bei der Ladezeit einer Webseite und/oder an der Last des Webservers?
Da würde ich ganz eindeutig "jein" sagen.
Kann - muss aber nicht.
Bei einigen RewriteConditions kann es richtig in die Performance gehen, z.B. hier habe ich diesen Hinweis gefunden:
Daraus könnte man also folgenden Test ableiten:'-F' (is existing file, via subrequest)
Checks whether or not TestString is a valid file, accessible via all the server's currently-configured access controls for that path. This uses an internal subrequest to do the check, so use it with care - it can impact your server's performance!
Oder der hier:Code:RewriteEngine on RewriteCond /var/www/$1.html -f RewriteRule ^/([a-z]+)$ /$1.html [L]
'-U' (is existing URL, via subrequest)
Checks whether or not TestString is a valid URL, accessible via all the server's currently-configured access controls for that path. This uses an internal subrequest to do the check, so use it with care - it can impact your server's performance!Mit jedem HTTP-Request wird ein weiterer Request (subrequest) erstellt um zu prüfen. Sowas muss letztendlich auf die CPU gehen. Bei dem konkreten Beispiel wäre ein ErrorDocument angebrachter.Code:RewriteEngine on RewriteCond %{REQUEST_URI} !-U RewriteRule ^(.+) http://umleitung.domain/$1
Es gibt aber auch andere Beispiele, wo richtig komplexe Regelwerke auf einem Webserver aktiv sind, und trotzdem erhält man keine (bzw kaum) messbaren Nebenwirkungen. z.B. gerade bei Massen-Webhostern sind die RewriteConditions und Rules sehr beliebt. Die legen nicht für jeden Webkunden eine eigen vhost.conf an. Hier wird vielmehr mit Rewrite gearbeitet.
Hallo Ihr Beiden,
danke für Eure Antworten.
@ fuchzga
Zu 1.)
Genau das habe ich auch mehrfach gelesen und deswegen erwähnt, dass ich nicht an die httpd.conf komme.
Die RewriteConds sind primär um Schädlingen einen Fehler zu schicken, weil kein Mensch gerne seine Seiten von Bot Netz Crawler und Spambots analysieren lässt.
Zu 2.)
Eine Prüfung auf -f -d -U erfolgt bei den Bots nicht. Wenn ich die Bots abschmettern möchte prüfe ich doch nicht erst, ob die 'ne gültige Datei/Verzeichnis/URL aufrufen.
EDITIch überlege gerade ob es nicht vielleicht besser ist das Ganze mit PHP zu lösen?! Eine User-Agent Liste mit bekannten bösartigen Bots und Sitebesucher darauf prüfen. Schickt ein Besucher eine bekannte Bot-Kennung, wird ein 403 Header gesendet.
Geändert von phpBuddy (19.08.2008 um 04:48 Uhr)
#.Viele Grüße - Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
PHP Tutorials und kostenlose Scripts gibt's bei phpBuddy.eu
Follow phpBuddy on Twitter
LTFB - anfängerfreundliche Tutorials
.
Gibt es doch schon: http://www.bot-trap.de/home/Ich überlege gerade ob es nicht vielleicht besser ist das Ganze mit PHP zu lösen?
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Hallo Boris,
ich sagte ja auch nicht, dass es sowas noch nicht gibt.
Nicht Jeder mag sich aber da groß und breit registrieren und sich durchleuchten lassen, ehe man das Script benutzen kann. Davon abgesehen brauche ich eine schlanke, non-DB Lösung um sie in ein kleines, eigenes Projekt einzubinden.![]()
#.Viele Grüße - Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
PHP Tutorials und kostenlose Scripts gibt's bei phpBuddy.eu
Follow phpBuddy on Twitter
LTFB - anfängerfreundliche Tutorials
.
Och, ich kann dir das Ding auch zuschicken.Nicht Jeder mag sich aber da groß und breit registrieren und sich durchleuchten lassen, ehe man das Script benutzen kann
Das Skript braucht auch keine DB und aktualisiert sich von alleine. "Schlank" kannst du vergessen, dazu gibt es viel zu viele Bots da draußen, die nicht unbedingt weniger werden.![]()
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)