1 pièce(s) jointe(s)
Créer via une REGEXP une rediection HTAccess sur Apache
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 :
Code:
1 2
|
<script type="text/javascript" src="MonFichierJS.<?php echo $t ?>.js"></script> |
où $t représente la date du fichier MonFichierJS.js
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) :
Code:
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 donc bien mon remplacement.
J'ai fait mettre en place le remplacement dans HTAccess, mais je n'ai pas mon fichier :
Pièce jointe 507165
la commande dans HTAccess est :
Code:
1 2
|
RewriteRule ^([\w-]+)\.\d+\.js $1.js [L] |
Je suppose qu'il me manque le chemin.
Je modifie mon test pour intégrer le chemin :
Code:
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); |
Mais il ne trouve rien (donc pas de remplacement).
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