Bonjour à tous, alors voila je suis en train de réfléchir sur un système très simple de mise en cache pour une API Rest.
Les seuls éléments variables sont les suivants:
- le "Content-Type" qui peut être soit (application/json) ou (application/xml)
- Le "Accept-Language" qui peut être fr, es, en ou de
Le principe est le suivant:
- on demande un fichier a mon API, je vérifie qu'il n'est pas déjà créé sur le disque dur (= mis en cache)
si c'est le cas je le sert, sinon je le génère à la volée, sauvegarde sur le disque et le sert.
Voici ce que j'ai écris dans le vhost:
Le problème c'est les variables REQUEST_TYPE et REQUEST_LANG ne sont pas assignées, j'ai pourtant essayé plusieurs manières de les écrire, mais elles sont toujours vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 # API Cache SetEnvIf Content-Type "(application/json)" REQUEST_TYPE=json SetEnvIf Content-Type "(application/xml)" REQUEST_TYPE=xml SetEnvIf Accept-Language "(fr)" REQUEST_LANG=fr SetEnvIf Accept-Language "(es)" REQUEST_LANG=es SetEnvIf Accept-Language "(de)" REQUEST_LANG=de SetEnvIf Accept-Language "/^((?!fr|es|de).)*$/" REQUEST_LANG=en RewriteRule ^/v[0-9]/lodgings/([0-9]) /api_cache/0/0/0/0/0/0/$1/lodgings/%{REQUEST_LANG}/$1.%{REQUEST_TYPE} [L] RewriteRule ^/v[0-9]/lodgings/([0-9])([0-9]) /api_cache/0/0/0/0/0/$1/$1$2/lodgings/%{REQUEST_LANG}/$1$2.%{REQUEST_TYPE} [L] RewriteRule ^/v[0-9]/lodgings/([0-9])([0-9])([0-9]) /api_cache/0/0/0/0/$1/$2/$1$2$3/lodgings/%{REQUEST_LANG}/$1$2$3.%{REQUEST_TYPE} [L] RewriteRule ^/v[0-9]/lodgings/([0-9])([0-9])([0-9])([0-9]) /api_cache/0/0/0/$1/$2/$3/$1$2$3$4/lodgings/%{REQUEST_LANG}/$1$2$3$4.%{REQUEST_TYPE} [L] RewriteRule ^/v[0-9]/lodgings/([0-9])([0-9])([0-9])([0-9])([0-9]) /api_cache/0/0/$1/$2/$3/$4/$1$2$3$4$5/lodgings/%{REQUEST_LANG}/$1$2$3$4$5.%{REQUEST_TYPE} [L] RewriteRule ^/v[0-9]/lodgings/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9]) /api_cache/0/$1/$2/$3/$4/$5/$1$2$3$4$5$6/lodgings/%{REQUEST_LANG}/$1$2$3$4$5$6.%{REQUEST_TYPE} [L] RewriteRule ^/v[0-9]/lodgings/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9]) /api_cache/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7/lodgings/%{REQUEST_LANG}/$1$2$3$4$5$6$7.%{REQUEST_TYPE} [L] ErrorDocument 404 /cachingScript.php
Je trouve ceci dans les logs rewrite:
local path result: /api_cache/0/0/0/0/0/0/1/lodgings//1.
Comme on peut le voir, les variables n'ont pas été renseignées.
Savez vous comment je peut déclarer et utiliser des variables dans un fichier de conf vhost ?
Merci d'avance et bonnes fêtes![]()
Partager