Hallo Peter,
Wieso bekomme ich aber ein Deny sowohl für /cgi-bin/awstats.pl als auch für /cgi-bin/awstats.pl?config=site1 ?
Weil sich LocationMatch nur auf den Pfad-Teil des URI beschränkt, d.h. der Query-String wird vorher abgetrennt. Sprich: <LocationMatch "/cgi-bin/awstats.pl$"> macht zwar /cgi-bin/awstats.plHalliHallo oder /cgi-bin/awstats.pl/Ciao nicht, aber /cgi-bin/awstats.pl?irgendwas schon.
Wenn Du an Hand von Query-Strings Zugriffe verbieten willst, dann bleibt Dir vermutlich nur mod_rewrite übrig, wo Du per RewriteCond Query-Strings auf ihren Inhalt überprüfen kannst, also zum Beispiel sowas:
# Wenn mod_rewrite zur Verfügung steht
<IfModule mod_rewrite.c>
RewriteEngine On
# Leere Query-String verbieten
RewriteCond %{QUERY_STRING} =""
RewriteRule /cgi-bin/awstats\.pl$ - [F]
# awstats.pl* verbieten
RewriteRule /cgi-bin/awstats\.pl.+$ - [F]
</IfModule>
# Wenn es nicht zur Verfügung steht
<IfModule !mod_rewrite.c>
<Location /cgi-bin/awstats.pl>
# Sicherheitshalber komplett verbieten
Order deny,allow
Deny from all
</Location>
</IfModule>
Ungetestet, sollte aber funktionieren (in der zentralen Config oder einer VHost-Config).
Viele Grüße,
Christian