Problème dossier photo protégé + URLRewriting + ErrorDocument

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

0takon
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 31 Oct 2010

Problème dossier photo protégé + URLRewriting + ErrorDocument

Message le Dim Oct 31, 2010 2:44

Bonjour à tous,

Je me décide à demander de l'aide finalement car ça fait quelques heures que je bloque sur la syntaxe de mon .htaccess

Alors voilà j'ai un site dont l'accès est sécurisé par Session php.
J'ai voulu protéger un répertoire contenant des photos pour qu'on ne puisse pas afficher une photo avec l'url directe sans avoir de session ouverte. Pour cela pas de problème :
J'ai un fichier index.php qui vérifie si l'utilisateur est loggé et qui renvoie la photo si oui.
J'ai un fichier htaccess qui ne permet l'ouverture que du index.php?file=$ comme ceci :

Code: Tout sélectionner
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !index\.php$
RewriteRule ^(.*)$ index.php?file=$1 [L]
ErrorDocument 404 erreur.php


Le résultat :
L'acces à un fichier (existant) par l'URL : http://www.mon-site.com/repertoire/image.jpg
> Renvoie une erreur 404 avec redirection de l'hébergeur (1&1) :(
> Je voudrais bien-sûr qu'il pointe sur mon "erreur.php" mais au moins l'acces direct au fichier n'est pas permis :) (ce que je souhaitais)

L'URL : http://www.mon-site.com/repertoire/index.php?file=image.jpg
> Affiche l'image si utilisateur loggé / formulaire de log sinon :)

En gros j'ai obtenu ce que je voulais mais je souhaiterais ajouter en prime :
> La redirection des erreurs vers ma page d'erreur perso
> Réécrire l'url type repertoire/index.php?file=mon_fichier.ext en /repertoire/mon_fichier.ext

J'arrive à réécrire l'url quand je n'ai pas la ligne
Code: Tout sélectionner
RewriteRule ^(.*)$ index.php?file=$1 [L]
mais mon système de protection ne fonctionne plus du tout.

Est-ce que quelqu'un à une idée sur l'erreur que je commets ou possède un code proche de ce que je souhaite faire.

Merci d'avance.


forty
WRInaute passionné
WRInaute passionné
 
Messages: 1701
Inscription: 30 Oct 2008

Re: Problème dossier photo protégé + URLRewriting + ErrorDocument

Message le Dim Oct 31, 2010 9:24

j'écrirais plutôt avec un l'url absolue de ton fichier erreur.php sinon il risque de chercher dans /repertoire pour une image /repertoire/uneimage.jpg :
Code: Tout sélectionner
ErrorDocument 404 /erreur.php

0takon
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 31 Oct 2010

Re: Problème dossier photo protégé + URLRewriting + ErrorDocument

Message le Dim Oct 31, 2010 11:45

Merci pour ta réponse forty.
Alors en fait j'ai résolu le problème de la redirection 404 en plaçant un .htacess avec
Code: Tout sélectionner
ErrorDocument 404 /erreur.php
dans le dossier racine de mon site.

Par contre le problème principal que je posais était de réécrire l'url : /repertoire/index.php?file=mon_fichier.ext en un autre sans variable GET ?file. Du genre repertoire/mon_fichier.ext ou repertoire/fichier-mon_fichier.ext

Je continue de chercher...

Merci d'avance.


forty
WRInaute passionné
WRInaute passionné
 
Messages: 1701
Inscription: 30 Oct 2008

Re: Problème dossier photo protégé + URLRewriting + ErrorDocument

Message le Dim Oct 31, 2010 12:52

Si tu ne souhaites réécrire que pour une extension tu peux mettre par exemple :
Code: Tout sélectionner
RewriteEngine On
RewriteRule ^repertoire/(.*)\.ext$ /repertoire/index.php?file=$1.ext [L]

0takon
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 31 Oct 2010

Re: Problème dossier photo protégé + URLRewriting + ErrorDocument

Message le Dim Oct 31, 2010 17:54

D'accord oui mais justement l'objet de ce post, c'est que la réécriture ne semble pas fonctionner.
Peut importe la règle j'ai toujours l'url : repertoire/index.php?file=mon_fichier.ext
JE rappelle qu'il y a un htacess dans le répertoire racine pour l'erreur 404
et une autre dans le répertoire "repertoire" avec ce code :
Code: Tout sélectionner
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !index\.php$
RewriteRule ^(.*)$ index.php?file=$1 [L]


Mon but est de réécrire l'url de /repertoire/index.php?file=mon_fichier.ext en /repertoire/mon_fichier.ext

Le schéma c'est :

Accès à : /repertoire/mon_fichier.ext
\/
Renvoi à /repertoire/index.php?file=mon_fichier.ext pour tester la session PHP

Voyez-vous un souci avec le code ci-dessus ?
Merci.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités