Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Config Apache2 : utilisation de LocationMatch

7 réponses
Avatar
Slasher
Bonjour,

j'ai un petit soucis de conf Apache...
Sur un serveur j'ai installé Nagios ainsi que iNagios (module
fournissant une interface spécifique pour iphone).

iNagios est fournit avec un fichier de conf pour Apache2 contenant ces
lignes :

<LocationMatch "\.(m?html?|mpl)$">
SetHandler perl-script
PerlSetVar MasonDataDir /var/www/html/mason/inagios
PerlHandler HTML::Mason::ApacheHandler
</Locationmatch>

J'ai cherché sur le net mais je ne comprend pas bien à quoi sert la
fonction <LocationMatch> mais celle-ci me pose problème pour ce que je
veux faire...

Sans ces lignes je peux ajouter un répertoire virtuel comme ceci :

alias /test /usr/share/test

Je place dedans un fichier index.html contenant simplement une ligne
"test", tout est ok.

A partir du moment ou je décommente les lignes <LocationMatch> je
n'accède plus à la page test de mon répertoire virtuel depuis mon
navigateur...

message d'erreur : "The requested URL /test/index.html was not found on
this server."

Le problème est que si je vire les lignes <LocationMatch>, iNagios ne
fonctionne plus : je suppose que quelque chose n'est pas interprété
correctement dans les pages de code iNagios car je vois des choses de ce
genre là qui apparaissent dans les champs de formulaire : "<%
$form{nagiosurl} %>"

iNagios ne dispose d'aucune doc et j'ai du mal à comprendre le principe
de <LocationMatch>. Su quelqu'un peux m'éclairer un peu à ce sujet...

Merci d'avance.

7 réponses

Avatar
Fabien LE LEZ
On Thu, 05 Mar 2009 18:21:14 +0100, Slasher :

j'ai un petit soucis de conf Apache...



Dans ce cas, fr.comp.infosystemes.www.serveurs est fait pour toi.
Avatar
Alain Montfranc
Slasher a écrit
Bonjour,

j'ai un petit soucis de conf Apache...
Sur un serveur j'ai installé Nagios ainsi que iNagios (module fournissant une
interface spécifique pour iphone).

iNagios est fournit avec un fichier de conf pour Apache2 contenant ces lignes
:

<LocationMatch ".(m?html?|mpl)$">
SetHandler perl-script
PerlSetVar MasonDataDir /var/www/html/mason/inagios
PerlHandler HTML::Mason::ApacheHandler
</Locationmatch>

J'ai cherché sur le net mais je ne comprend pas bien à quoi sert la fonction
<LocationMatch> mais celle-ci me pose problème pour ce que je veux faire...



http://httpd.apache.org/docs/2.2/mod/core.html#locationmatch


Sans ces lignes je peux ajouter un répertoire virtuel comme ceci :

alias /test /usr/share/test

Je place dedans un fichier index.html contenant simplement une ligne "test",
tout est ok.

A partir du moment ou je décommente les lignes <LocationMatch> je n'accède
plus à la page test de mon répertoire virtuel depuis mon navigateur...



Normal, le LocationMatch s'applique

iNagios ne dispose d'aucune doc et j'ai du mal à comprendre le principe de
<LocationMatch>. Su quelqu'un peux m'éclairer un peu à ce sujet...





Si le fichier match le LocationMatch les directives s'appliquent
Avatar
Slasher
Fabien LE LEZ a écrit :
On Thu, 05 Mar 2009 18:21:14 +0100, Slasher :

j'ai un petit soucis de conf Apache...



Dans ce cas, fr.comp.infosystemes.www.serveurs est fait pour toi.



Ok, merci pou l'info ;-)
il a l'air un peu déserté par contre :/
Avatar
Slasher
Alain Montfranc a écrit :
Slasher a écrit
Bonjour,

j'ai un petit soucis de conf Apache...
Sur un serveur j'ai installé Nagios ainsi que iNagios (module
fournissant une interface spécifique pour iphone).

iNagios est fournit avec un fichier de conf pour Apache2 contenant ces
lignes :

<LocationMatch ".(m?html?|mpl)$">
SetHandler perl-script
PerlSetVar MasonDataDir /var/www/html/mason/inagios
PerlHandler HTML::Mason::ApacheHandler
</Locationmatch>

J'ai cherché sur le net mais je ne comprend pas bien à quoi sert la
fonction <LocationMatch> mais celle-ci me pose problème pour ce que je
veux faire...



http://httpd.apache.org/docs/2.2/mod/core.html#locationmatch


Sans ces lignes je peux ajouter un répertoire virtuel comme ceci :

alias /test /usr/share/test

Je place dedans un fichier index.html contenant simplement une ligne
"test", tout est ok.

A partir du moment ou je décommente les lignes <LocationMatch> je
n'accède plus à la page test de mon répertoire virtuel depuis mon
navigateur...



Normal, le LocationMatch s'applique

iNagios ne dispose d'aucune doc et j'ai du mal à comprendre le
principe de <LocationMatch>. Su quelqu'un peux m'éclairer un peu à ce
sujet...





Si le fichier match le LocationMatch les directives s'appliquent





Hello !

Oui je suis allé voir déjà sur cette page mais j'ai quand même un peu de
mal à saisir...

Si je comprend bien les directives passées en dessous s'appliquent si ca
match, mais je ne comprend pas bien ce qu'on match exactement avec
<LocationMatch ".(m?html?|mpl)$">

Bon, d'après ce que je comprend on cherche les fichiers commençants par
"m" et finissant par "html" et les fichiers finissant par "mpl"...

Ça veux dire que tout fichier ne répondant pas à ça ne sera pas accessible ?

Quelle serait la solution pour que /test/ (et ses sous répertoires)
fonctionne normalement ?

Je ne comprend pas ce que signifie le "." et le "$" à la fin.
Avatar
Alain Montfranc
Slasher a écrit

Si je comprend bien les directives passées en dessous s'appliquent si ca
match, mais je ne comprend pas bien ce qu'on match exactement avec
<LocationMatch ".(m?html?|mpl)$">

Bon, d'après ce que je comprend on cherche les fichiers commençants par "m"
et finissant par "html" et les fichiers finissant par "mpl"...



Non, les fichiers finissant par .html .mhtml .mmmmhtml ou .mpl

Ça veux dire que tout fichier ne répondant pas à ça ne sera pas accessible ?



Non, qu'il sera traité selon les directives incluses dans le
LocationMatch


Quelle serait la solution pour que /test/ (et ses sous répertoires)
fonctionne normalement ?



Par exemple mettre tout ce qui concerne nagios en /nagios/ et modifier
le LocationMatch en /nagios/.*.(m?html?|mpl)$


Je ne comprend pas ce que signifie le "." et le "$" à la fin.



le . veut dire "tout caractere" en le backslashant il redevient le "."
normal

Le $ veut dire "fin de chaîne". Donc toto matche bien "t" mais pas "t$"
Avatar
Slasher
Alain Montfranc a écrit :
Slasher a écrit

Si je comprend bien les directives passées en dessous s'appliquent si
ca match, mais je ne comprend pas bien ce qu'on match exactement avec
<LocationMatch ".(m?html?|mpl)$">

Bon, d'après ce que je comprend on cherche les fichiers commençants
par "m" et finissant par "html" et les fichiers finissant par "mpl"...



Non, les fichiers finissant par .html .mhtml .mmmmhtml ou .mpl

Ça veux dire que tout fichier ne répondant pas à ça ne sera pas
accessible ?



Non, qu'il sera traité selon les directives incluses dans le LocationMatch


Quelle serait la solution pour que /test/ (et ses sous répertoires)
fonctionne normalement ?



Par exemple mettre tout ce qui concerne nagios en /nagios/ et modifier
le LocationMatch en /nagios/.*.(m?html?|mpl)$


Je ne comprend pas ce que signifie le "." et le "$" à la fin.



le . veut dire "tout caractere" en le backslashant il redevient le "."
normal

Le $ veut dire "fin de chaîne". Donc toto matche bien "t" mais pas "t$"





Super, merci pour ce petit explicatif.
Je vais retester ça :-)
Avatar
Slasher
Slasher a écrit :
Alain Montfranc a écrit :
Slasher a écrit

Si je comprend bien les directives passées en dessous s'appliquent si
ca match, mais je ne comprend pas bien ce qu'on match exactement avec
<LocationMatch ".(m?html?|mpl)$">

Bon, d'après ce que je comprend on cherche les fichiers commençants
par "m" et finissant par "html" et les fichiers finissant par "mpl"...



Non, les fichiers finissant par .html .mhtml .mmmmhtml ou .mpl

Ça veux dire que tout fichier ne répondant pas à ça ne sera pas
accessible ?



Non, qu'il sera traité selon les directives incluses dans le
LocationMatch


Quelle serait la solution pour que /test/ (et ses sous répertoires)
fonctionne normalement ?



Par exemple mettre tout ce qui concerne nagios en /nagios/ et modifier
le LocationMatch en /nagios/.*.(m?html?|mpl)$


Je ne comprend pas ce que signifie le "." et le "$" à la fin.



le . veut dire "tout caractere" en le backslashant il redevient le "."
normal

Le $ veut dire "fin de chaîne". Donc toto matche bien "t" mais pas "t$"





Super, merci pour ce petit explicatif.
Je vais retester ça :-)




Bon, j'ai fait quelques tests mais c'est peu concluant...
voilà à quoi ressemble mon fichier de conf :

#####################################################
#####################################################
#####################################################

Alias /inagios /var/www/html/inagios
<Directory /var/www/html/inagios>
SSLRequireSSL
</Directory>


<VirtualHost _default_:80>
ServerName inagios.monsite.net
ServerAlias *.inagios.monsite.net
ServerAdmin
DocumentRoot "/var/www/html/inagios"

ErrorLog /var/log/apache2/inagios-error.log
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i"
"%{User-Agent}i"" combined
CustomLog /var/log/apache2/inagios-access.log combined

RewriteEngine On
#RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://nagios.monsite.net [R,L]
</VirtualHost>

<VirtualHost _default_:443>
ServerName nagios.monsite.net
ServerAlias *.nagios.monsite.net
ServerAdmin
DocumentRoot "/var/www/html/inagios"

ErrorLog /var/log/apache2/inagios-error.log
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i"
"%{User-Agent}i"" combined
CustomLog /var/log/apache2/inagios-access.log combined

SSLEngine on
SSLOptions +StrictRequire
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/nagios3/nagios.monsite.net.crt
SSLCertificateKeyFile /etc/nagios3/nagios.monsite.net.key

SetEnvIf User-Agent ".*MSIE.*"
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0

DeflateBufferSize 8096
DeflateCompressionLevel 9
DeflateMemLevel 9
DeflateWindowSize 15

<Files ~ "/.(p[lm]|sql|co?nf|cfg|ini)$">
order allow,deny
deny from all
</Files>

<Location />
# Insert filter
SetOutputFilter DEFLATE

# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI
.(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>

# <LocationMatch "/test/.(html)$">
# SetHandler perl-script
# PerlSetVar MasonDataDir /var/www/html/mason/inagios
# PerlHandler HTML::Mason::ApacheHandler
# </Locationmatch>

<LocationMatch ".(m?html?|mpl)$">
SetHandler perl-script
PerlSetVar MasonDataDir /var/www/html/mason/inagios
PerlHandler HTML::Mason::ApacheHandler
</Locationmatch>

</VirtualHost>

#####################################################
#####################################################
#####################################################

dans cet état, inagios fonctionne bien en ssl (https://nagios.monsite.net)

par contre https://nagios.monsite.net/test/ me retourne : The requested
URL /test/index.html was not found on this server.

si je décommente :

<LocationMatch "/test/.(html)$">
SetHandler perl-script
PerlSetVar MasonDataDir /var/www/html/mason/inagios
PerlHandler HTML::Mason::ApacheHandler
</Locationmatch>

...j'ai exactement le même résultant.

Maintenant je commente :

# <LocationMatch ".(m?html?|mpl)$">
# SetHandler perl-script
# PerlSetVar MasonDataDir /var/www/html/mason/inagios
# PerlHandler HTML::Mason::ApacheHandler
# </Locationmatch>

-> https://nagios.monsite.net/test/ fonctionne bien !!!
...mais https://nagios.monsite.net pose problème (la page inagios
s'affiche mais avec des choses comme ca dans les champs formulaire : <%
$form{nagiosurl} %>"

Je ne sais pas si c'est moi qui est mal fait quelque chose ou si il y a
autre chose dans la conf qui pose problème... (pour info dans le dossier
virtuel /test/ je fichier s'appelle index.html)