Aller au contenu

Rewriter pour filtrer le téléchargement des fichiers


Sujets conseillés

Bonjour, (joli le thème à la Office pour les post :) )

Bon, voilà 2 jours que je trime et j'ai même cherché la doc officielle d'apache mais je pète un câble. Je pensais trouver un site qui me dirait comment traduire simplement ce que je veux mais j'ai l'impression que tout le monde en parle comme si c'était inné alors au passage si quelqu'un a un dico de rewriting, voire mieux : un traducteur :P

Donc voilà, je voudrai simplement filtrer le téléchargement des fichiers d'un site (quelle que soit l'extension et quel que soit leur emplacement) en renvoyant toutes les demandes sur la même page php à la racine indiquant le dossier et le fichier voulu...

Donc en gros en langage barbare je dirais :


RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^/~(.+) unepage.php?fichier=$1 [L]

Évidemment ça marche pas

Exemple de ce que je veux obtenir (url demandée => url voulue)

exemple.com/fichier.ext => unepage.php?fichier=fichier.ext

exemple.com/dossier/fichier.ext => unepage.php?fichier=dossier/fichier.ext

exemple.com/dossier/sousdossier/fichier.ext => unepage.php?fichier=dossier/sousdossier/fichier.ext

etc...

PS : heu et qu'on puisse pas m'injecter quoi que ce soit

NB : et un mars :whistling:

Modifié par Arlette
Lien vers le commentaire
Partager sur d’autres sites

Pourquoi as-tu mis un "~"? Et dans un .htaccess normalement pas besoin du / initial. Sans ça devrait marcher, non?

Note que ça renverra TOUS les fichiers (y compris images, css, js, etc.) vers ton script...

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi as-tu mis un "~"? Et dans un .htaccess normalement pas besoin du / initial. Sans ça devrait marcher, non?

Note que ça renverra TOUS les fichiers (y compris images, css, js, etc.) vers ton script...

Jacques.

Merci pour la réponse, en effet ça fonctionne, avec QSA pour récupérer la variable :


RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule (.*) unepage.php?fichier=$1 [QSA,L]

:thumbsup:

Modifié par graphys
Lien vers le commentaire
Partager sur d’autres sites

Note que ça renverra TOUS les fichiers (y compris images, css, js, etc.) vers ton script...
Je pense qu'il y a une faute de frappe.

On s'attendrait plutôt à voir

RewriteCond %{REQUEST_FILENAME} !-f

de sorte que tous les accès soient renvoyés sauf ceux qui aboutissent à un fichier, ce qui est habituellement le cas des images, css,...

Jean-Luc

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...