Bonjour
Je souhaite faire une redirection sur mon serveur Apache via le fichier HTAccess.
Et RegExp c'est pas ma tasse de thé.
Pour éviter des problèmes de cache sur le navigateur, je me suis inspiré de ce site https://blog.smarchal.com/mise-en-cache-js-css
Donc mes fichiers javaScript sont appelés ainsi :
où $t représente la date du fichier MonFichierJS.js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<script type="text/javascript" src="MonFichierJS.<?php echo $t ?>.js"></script>
Au chargement de la page, le navigateur réclame le fichier MonFichierJS.1569593028.js (qui bien sur n'existe pas).
Apache doit lui renvoyer MonFichierJS.js
Pour cela je cherche à mettre en place une expression régulière.
J'ai fait ce test sur ma page (je n'ai pas accès au HTAccess) :
J'ai donc bien mon remplacement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $MonFichier='DAASC.1569593028.js'; $RegExp='#^([\w-]+)\.\d+\.js#'; preg_match($RegExp, $MonFichier, $matches); echo '<br/>'; // on obtient DAASC print_r($matches); echo '<br/>'; $rempl=preg_replace($RegExp , '$1.js' , $MonFichier); echo '<br/>remplacement : '.$rempl.'<br/>'
J'ai fait mettre en place le remplacement dans HTAccess, mais je n'ai pas mon fichier :
la commande dans HTAccess est :
Je suppose qu'il me manque le chemin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RewriteRule ^([\w-]+)\.\d+\.js $1.js [L]
Je modifie mon test pour intégrer le chemin :
Mais il ne trouve rien (donc pas de remplacement).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $MonFichier='https://maracana.intra.cea.fr:5020/modules/influx/DAASC.1569593028.js'; echo '<br/>Recherche dans '.$MonFichier; $RegExp='#$([\w-]+)\.\d+\.js#'; preg_match($RegExp, $MonFichier, $matches); echo '<br/>'; print_r($matches); echo '<br/>'; $rempl=preg_replace($RegExp , '$1.js' , $MonFichier);
Comment dans expression régulière intégrer le chemin ?
1- pour que l'occurence soit trouvée
2 -pour que le chemin soit conserver dans le remplacement
Partager