IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

FilesMatch : négation d'un pattern impossible


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 10
    Par défaut FilesMatch : négation d'un pattern impossible
    Bonjour,
    A la recherche d'une solution depuis plus de 3 heures, j'ai consulté la doc des expressions régulières pour FilesMatch (absolument imbuvable) et n'arrive toujours pas à faire fonctionner la négation d'un patern, pour forcer le téléchargement des fichiers qui ne match pas les extensions suivantes
    (gif|png|jpe|jpg|jpeg|ico|webp|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|pdf)

    Avec la négation ?<!, ça provoque une erreur 500 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <FilesMatch "\.(?<!(gif|png|jpe|jpg|jpeg|ico|webp|js|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|pdf))$">
        ForceType application/octet-stream
        Header set Content-Disposition attachment
    </FilesMatch>
    Sans la négation, ça force le téléchargement des extensions susmentionnées...

    Est-ce que vous avez une idée ?
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Lorsqu'il y a l'erreur 500, que dit le fichier error_log ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 10
    Par défaut
    Bonsoir !

    Dans les logs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Tue Jul 31 23:32:37 2012] [alert] [client 127.0.0.1] T:/Travaux/cpl/var/.htaccess: Regex could not be compiled
    Pas très loquace ce log...

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    En effet. Je viens de passer un certain à tester : ne me demande pas pourquoi mais Apache n'aime pas quand on met dans des ...|...|... des chaînes de caractères de tailles différentes !! Si tu mets gif|jpg|png, ça passe, ce sont des chaînes de 3 caractères. En revanche, si tu mets gif|jpeg|png ça ne passe plus ! Il faut en outre placer le \. dans le bloc de parenthèses pour que ça se comporte comme il faut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FilesMatch "(?<!\.(gif|png|jpe|jpg|ico|oga|ogg|m4a|ogv|mp4|m4v|svg|pdf))$">
    Ceci dit, savoir ça ne résoud toujours pas ton problème. Là, honnêtement, je ne sais pas comment faire Il y a peut-être une syntaxe alternative qu'on n'a pas encore trouvée.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 10
    Par défaut
    Merci pour cette réponse !
    C'est étrange ce comportement avec des chaines de longueur différentes... surtout que ça fonctionne bien sans la négation...

    Du coup j'ai trouvé une solution alternative qui semble fonctionner, c'est la plus satisfaisante sur apache 2.2 que j'ai pu trouver.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ForceType application/octet-stream
    Header set Content-Disposition attachment
     
    <FilesMatch "\.(gif|png|jpe|jpg|jpeg|ico|webp|js|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|pdf)$">
      ForceType None
      Header unset Content-Disposition
    </FilesMatch>
    Qu'est ce que tu en penses, y vois-tu une éventuel bug ?
    Je pense notamment au fait de faire un "Header unset Content-Disposition"...

    Merci encore pour ton aide qui m'est très précieuse.

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Je pense que c'est la bonne solution : passer les directives ForceType et Header à la négative, vu qu'on n'arrive pas prendre la négation du FilesMatch.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. BOOST :: REGEX PATTERN IMPOSSIBLE ?
    Par Jah77 dans le forum Boost
    Réponses: 2
    Dernier message: 26/01/2009, 14h50
  2. [ArchiveBuilder][JavaMail] exécution impossible...
    Par Gorthal dans le forum JBuilder
    Réponses: 7
    Dernier message: 10/01/2003, 09h12
  3. Réponses: 8
    Dernier message: 20/11/2002, 11h50
  4. Impossible de quitter mon application!
    Par Bouillou dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/11/2002, 20h43
  5. Réponses: 3
    Dernier message: 01/11/2002, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo