Aller au contenu

Sujets conseillés

Posté

Bonjour à tous,

J'ai un soucis sur mon blog (wordpress) car je ne parviens pas à accéder à mes statistiques Awstats, cela me ramène à chaque fois sur la page d'accueil du blog.

Si je rajoutes RewriteEngine Off en tête de mon fichier htaccess de mon répertoire awstats, cela n'a aucun effet

A la racine de mon site, j'ai le fichier htaccess suivant :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

J'ai mon répertoire Awstats qui se nomme Awstats et qui a le fichier htaccess suivant :

Options +ExecCGI
AddHandler cgi-script pl
DirectoryIndex awstats.pl

AuthUserFile /home/walt/domains/domaine.com/public_html/awstats/.htpasswd
AuthType Basic
AuthName "AwStats Protection"

<LIMIT GET POST>
require valid-user
</LIMIT>

Merci de votre aide.

Posté

Merci bien pour ta réponse, mais malheureusement, cela ne résoud pas mon problème.

Pour information, awstats est bien fonctionnel sur des sites "standard". En revanche, sur un autre site avec Wordpress, j'ai le même soucis.

De manière à être précis, il s'agit du plugin awstats pour DirectAdmin.

Posté

Je te demandais ce que tu tapais ou ce qui apparaît dans la barre d'adresse quand tu veux visualiser les rapports AWStats, mais tu ne réponds pas ... ;)

Jean-Luc

Posté

Autant pour moi Jean-Luc,

oui effectivement, le statistiques sont normalement accessible via /awstats ou /awstats/awstats.pl

Habituellement, j'utilise l'url nomdedomaine/awstats

Posté (modifié)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

veut dire que si l'URL ne correspond pas à un fichier ou à un répertoire existant, l'URL doit être traitée par WordPress.

Je pense que tu pourrais y ajouter une exception pour AWStats (devant toute la partie WordPress):

RewriteRule ^awstats - [L]

Jean-Luc

Modifié par Jeanluc
Posté

Merci Jean Luc,

A priori la ligne rajoutée ne change rien. Je n'ai pas redémarrer Apache, ceci dit, normalement ce n'est pas nécessaire

Posté

En étudiant tes règles et en les décrivant :

RewriteCond %{REQUEST_FILENAME} !-f <-- Si le nom de la ressource demandée n'est pas un fichier existant

RewriteCond %{REQUEST_FILENAME} !-f <-- Si le nom de la ressource demandée n'est pas un dossier existant

Si ces condifitions sont vérifiée,

RewriteRule . /index.php [L] <-- Réécrire la requête vers le fichier index.php.

Donc si effectivement ton dossier "awstats" existe et qu'il est accessible tu ne devrait pas avoir ce problème. Si tu es "ramené" (si c'est une redirection, l'adresse dans la barre change et donc ce n'est en tous cas pas ces lignes vu qu'elles font une réécriture locale).

Tu peux tester rapidement ceci en commentant avec un "#" au début de chacune de ces 3 lignes et en essayer d'accéder au dossier "awstats"...si la redirection s'effectue toujours c'est que ce ne sont pas ces lignes...si tu as d'autres lignes dans ce fichier donne-les nous...sinon il faut regarder un niveau au dessus dans ton arborescence et ainsi de suite jusqu'à arriver au fichier de configuration principal de Apache (souvent nommé httpd.conf).

Au passage, la ligne donnée par Jeanluc était à placer avant les 3 lignes déjà présentes dans ton fichier bien entendu ;)

Posté
En étudiant tes règles et en les décrivant :

RewriteCond %{REQUEST_FILENAME} !-f <-- Si le nom de la ressource demandée n'est pas un fichier existant

RewriteCond %{REQUEST_FILENAME} !-f <-- Si le nom de la ressource demandée n'est pas un dossier existant

Si ces condifitions sont vérifiée,

RewriteRule . /index.php [L] <-- Réécrire la requête vers le fichier index.php.

Merci pour ces précisions concernant les conditions

Donc si effectivement ton dossier "awstats" existe et qu'il est accessible tu ne devrait pas avoir ce problème. Si tu es "ramené" (si c'est une redirection, l'adresse dans la barre change et donc ce n'est en tous cas pas ces lignes vu qu'elles font une réécriture locale).

Oui mon répertoire awstats existe, il contient le fichier awstats.pl et trois liens symbolique. Non, l'adresse ne change pas dans ma barre d'adresse.

Pour information, j'ai un accès SSH sur mon serveur

Tu peux tester rapidement ceci en commentant avec un "#" au début de chacune de ces 3 lignes et en essayer d'accéder au dossier "awstats"...si la redirection s'effectue toujours c'est que ce ne sont pas ces lignes...si tu as d'autres lignes dans ce fichier donne-les nous...sinon il faut regarder un niveau au dessus dans ton arborescence et ainsi de suite jusqu'à arriver au fichier de configuration principal de Apache (souvent nommé httpd.conf).

Je vous ai donner toutes les lignes de mes fichiers évidemment.

Je n'ai pas d'autres fichiers htaccess à des niveaux supérieurs.

Au passage, la ligne donnée par Jeanluc était à placer avant les 3 lignes déjà présentes dans ton fichier bien entendu ;)

Oui, j'avais bien compris

Posté

Après test

blocage de RewriteBase /

=> accès au blog OK, toujours pas d'accès à awstats

blocage de RewriteCond %{REQUEST_FILENAME} !-f

=> erreur 500 sur le blog et tjrs pas d'accès à awstats

blocage de RewriteCond %{REQUEST_FILENAME} !-f

=> accès au blog OK, pas d'accès à awstats

blocage de RewriteRule . /index.php

=> accès accueil blog OK, plus d'accès aux posts, accès awstats OK

Posté

En fait après avoir regardé ta règle ne semble pas faire ce que tu souhaites

RewriteRule . /index.php

"." ne correspond qu'à "un caractère"... il faut l'associer à un quantificateur (+, * ou ?)

RewriteRule .* /index.php

Serait plus logique :)

Ensuite pour en revenir à ton problème... ce que je verrais éventuellement c'est que le lien symbolique n'est pas jugé comme un fichier ou un répertoire lors de la réécriture. Pour ce point je t'avoue que je ne suis pas sîur car je n'ai jamais fait l'expérience d'un tel problème, mais peut-être que la directive suivante dans ton .htaccess pourrait résoudre le problème :

Options +FollowSymLinks

Sinon il y a encore une possibilité... dans le même registre, en désactivant la directive MultiViews tu évites que Apache cherche lui même un fichier à présenter lorsqu'il ne trouve pas directement la ressource demandée :

Options -MultiViews

J'ai regardé les source de WordPress, ne l'ayant pas utilisé récemment, et je ne vois aucun fichier .htaccess, est-toi qui a écrit ces règles ou est-ce un plugin de WP qui permet de tirer partit de la réécriture ?

Posté

J'ai rajouté Options +FollowSymLinks mais cela ne change rien.

De mémoire, c'est lors à la fin de l'install Wordpress qu'il faut activer le .htaccess.

Posté

Peux-tu encore me confirmer une chose, est-ce que lorsque tu accède à l'adresse "../awstats/" l'adresse dans la barre d'adresse de ton navigateur change-telle (redirection) ou reste-t-elle telle quelle (et ton blog s'affiche à la place, réécriture) ?

Une petit chose encore, dans ton fichier.htaccess dans le répertoire "awstats" la ligne :

AddHandler cgi-script pl

Me semble plus juste si tu précises que "pl" est une extension en ajoutant un point devant (du moins c'est ainsi que le manuel Apache l'écrit) :

AddHandler cgi-script .pl

Posté

Oui effectivement, l'adresse reste nomdudomaine/awstats mais c'est mon blog qui s'affiche.

Pour la correction du .htaccess, je la ferais ce soir.

Posté

En fait c'est bien ce que je pensais, le lien symbolique est certainement la cause de ton problème, je ne sais pas si ton répertoire "awstats" est lui aussi un lien symbolique, mais même si ce n'est pas le cas le fichier qui est chargé par défaut lorsque tu accède à l'URL en est un. À mon avis il suffit de rajouter cette condition aux deux autres tests (fichiers et dossiers), l'ordre des 3 testes n'a pas d'importance :

RewriteCond %{REQUEST_FILENAME} !-l

Posté (modifié)

Malheureusement, mon répertoire et le fichier awstats.pl ne sont pas des liens symboliques.

Contenu du répertoire awstats

awstats.pl
icon -> /usr/local/directadmin/plugins/awstats/hooks/cgi-bin/icon
lang -> /usr/local/directadmin/plugins/awstats/hooks/cgi-bin/lang
lib -> /usr/local/directadmin/plugins/awstats/hooks/cgi-bin/lib
plugins -> /usr/local/directadmin/plugins/awstats/hooks/cgi-bin/plugins

J'ai par ailleurs rajouté le code suivant mais cela ne change rien

RewriteCond %{REQUEST_FILENAME} !-l

Modifié par spinacle
Posté

Cela devient vraiment un problème bizarre... parce que quand explicitement tu dis de ne pas réécrire l'URL commençant par "awstat" (peut-être faut-il refaire un test en élargisant cette règle à "tout ce qui contient awstats" --> RewriteRule awstats - [L] (cette fois sans le ^) cela ne change rien, si tu lui dis explicitement pour tous les fichiers, dossiers et liens symboliques qui existent ne pas faire la réécriture et ça ne marche pas je commence à être à court d'idées.

Pour diagnostiquer encore plus le problème, est-ce que ce problème est le même pour d'autres répertoires (essaie d'en créer un et d'y accéder comme tu le fais pour awstats) ?

Posté

avec ce nous Rewrite, pas mieux

J'ai bien un répertoire images au même niveau que awstats. j'arrive à accéder à un fichier gif qui est directement dans ce dossier

Posté

Un grand merci à toi TheRec, en créant un fichier vide dans mon répertoire /awstats et en modifiant mon .htaccess à la racine en y rajoutant la ligne ; cela fonctionne. :thumbsup:

ErrorDocument 401 /awstats/empty

Posté

Super ! De rien, j'ai lu les explications, le comportement est bizarre mais bon à connaître :D

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...