Pattern pointant sur un scriptalias ?

Nouveau WRInaute
Bonjour,

J'utilise AWStats et je l'interface avec PHP pour gérer automatiquement diverses conneries.
J'aimerais disposer d'url simple mais il y a un dossier scriptalias qui me gêne.

J'aimerais avoir une URL comme ceci :
http://www.domaine.com/stats/site1.html
cette adresse pointant vers :
http://www.domaine/stats/awstats.pl?config=site1

Le dossier stats est un scriptalias et c'est là que ça plante.

Voici la config dans mon httpd.conf :
Code:
ScriptAlias /stats/ "C:/Serveurs/AWStats/wwwroot/cgi-bin/"
    <Directory "/stats/">
        Options +FollowSymLinks
        RewriteEngine on
        RewriteRule ^(.*)\.html$ awstats.pl?config=$1 [L]
    </Directory>
    <Directory "C:/Serveurs/AWStats/wwwroot">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

Config de vhost.conf pour le domanie en question :
Code:
<VirtualHost *>
ServerName stats.domain.com
DocumentRoot "F:/www/stats"
</VirtualHost>

Quelqu'un peut m'aiguiller ?
 
WRInaute occasionnel
Essaie avec un flag PT
Code:
RewriteRule ^(.*)\.html$ awstats.pl?config=$1 [PT,L]
ca permet de partager les réécritures entre plusieurs modules.

Comme ils disent dans la doc d'Apache
Note: You have to use this flag if you want to intermix directives of different modules which contain URL-to-filename translators. The typical example is the use of mod_alias and mod_rewrite..
 
Nouveau WRInaute
marche pas ...
enfin à moitié.

ça me donne une erreur 400 !
Invalid URI in request GET /stats/site1.html HTTP/1.1

J'ai modifié la condition du rewrite et j'ai mis le chemin du répertoire plutôt que son alias, dans la directire directory.
 
Nouveau WRInaute
Bon et bien voici ma config finale. J'ai tout placé dans le virtualhost comme ça, plus simple à gérer (vu que le scripts bouffe pas mal de ressources (perl...)).

Code:
<VirtualHost *>
# principal
ServerName stats.domaine.com
DocumentRoot "C:/www/stats"
# AWStats
Alias /awstatsclasses "C:/Serveurs/AWStats/wwwroot/classes/"
Alias /awstatscss "C:/Serveurs/AWStats/wwwroot/css/"
Alias /awstatsicons "C:/Serveurs/AWStats/wwwroot/icon/"
ScriptAlias /stats/ "C:/Serveurs/AWStats/wwwroot/cgi-bin/"
<Directory "C:/Serveurs/AWStats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Options -indexes
# rewrite des stats
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^/stats/(.*)\.html$ /stats/awstats.pl?config=$1 [PT,L]
</VirtualHost>

Pour ceux que ça intéresse, le script PHP associé :
Code:
<?
// Listing des stats dispos à partir des fichiers de conf de AWStats
error_reporting("E_ALL");

$cmd = 'find C:\Serveurs\AWStats\wwwroot\cgi-bin -name "awstats.*.conf" -type f -print';
exec($cmd,$find_ar);

for ( $i=0; $i<count($find_ar); $i++ ) {
    if ( !ereg("awstats.model.conf$",$find_ar[$i]) ) {
  		ereg("awstats\.(.*)\.conf$",$find_ar[$i],$nom);
      echo '<li><a href="/stats/'.$nom[1].'.html">'.ereg_replace("_-"," ",$nom[1]).'</a></li>';
    }
} 
?>

Biensûr, faut adapter les chemins vers les scripts et autres selon vos installations mais le principal est là.

Au fait, AWStats est un log viewer, pas tout mal : http://www.awstats.org/
 
WRInaute occasionnel
bibilefou a dit:
Bon et bien voici ma config finale. J'ai tout placé dans le virtualhost comme ça, plus simple à gérer (vu que le scripts bouffe pas mal de ressources (perl...)).

Au cas où, tu peux aussi lui faire générer les pages de stats plutôt qu'y accéder en CGI. Un cron quotidien et plus de problèmes de ressources.
 
Discussions similaires
Haut