Je cherche à sécuriser mon site web afin que personne ne puisse accéder directement aux répertoires internes.
En effet, dans la barre d'adresses, les paramètres passés en arguments sont du type : repertoire/sous repertoire/photo n° ...
comment puis-je m'y prendre
J'ai commencé à m'interesser à la ré écriture d'url via htaccess mais j'ai l'impression que ca ne résoudra pas mon problème vu que j'aimerais que ce soit "repertoire/sous repertoire" qui ne soient pas visibles.
C'est bon, je pense avoir trouvé une solution intermédiaire à mon problème de variables visibles : les passer par l'intermédiaire des méthodes "post", comme pour les formulaires et là, aucune indication dans l'url !!
merci en tout cas de t'être interéssé(e) à mon problème.
bon dimanche.
-> Si j'ai bien compris tu as une url un peu comme çà : "repertoire/sous repertoire/photo.jpg"
-> Tu pourrais utiliser l'URL Rewriting pour que cela donne "12/photo.jpg"
(le 1 correspond aux répertoires et le 2 aux sous répertoires)
Par exemple :
Tu choisis que le répertoire "janvier" devienne 1 et que le sous-répertoire "vacances" devienne 5, alors tu met ce code dans un fichier ".htaccess" :
"Options +FollowSymlinks
RewriteEngine On
RewriteRule 15/photo.jpg janvier/vacances/photo.jpg [L]"
et l'url "15/photo.jpg" donnera pas une erreur 404 mais redirigera sans que le visiteur le sache vers "janvier/vacances/photo.jpg"
Oui, merci pour ta réponse, c'est bien ça.
Seulement, la photo s'affiche dans une nouvelle page quand on clique sur sa miniature, et j'aimerais donc modifier l'URL de cette nouvelle page.
Je me demandais si plutôt je dois écrire le .htaccess de cette manière, car à ce jour, ca ne fonctionne toujours pas :
ReSalut,
Fais un ".htaccess" comme ceci :
"Options +FollowSymlinks
RewriteEngine On
RewriteRule P15/photo.jpg fichier.php?img= 15/photo.jpg [L]
RewriteRule 15/photo.jpg janvier/vacances/photo.jpg [L]"
( le " P " devand le "15" c'est pour "Preview" mdr )
Et mets cela dans ton "fichier.php" qui va afficher les images en taille réelle :
"<?php
if (isset($_GET['img'])) {
$urlimage = dirname($_SERVER['PHP_SELF']);
$urlimage .= '/'.$_GET['img'];
echo '';
}
else header('Location: index.php');
?>"
Ca ne fonctionne toujours pas ...
Mais maintenant que j'ai bien compris le fonctionnement des fichiers htaccess ,
mais je compte perséverer avec cette histoire quand même !!
Autre petite question : je vois que tu ne met pas les symboles ^ et $ de début et fin de chaine dans ton htaccess; sont-ils facultatifs ?
En fait, petit retour en arrière de ma part car là j'ai voulu commencer par la fin plutot que par le début !
Voilà, plutôt de vouloir cacher toute l'url et étant donné que je n'y arrivais pas, je me suis rabatue à vouloir simplement caché le répertoire; je t'explique :
- un menu présent à gauche sur mon site (bon ok, on s'en fiche qu'il soit à gauche ou à droite ) permet de sélectionner l'album photo en question.
- donc quand on clique sur un de ses items, on arrive sur l'album photo sélectionné (ex : janvier), qui contient des sous galleries : (ex : vacances ) et à ce niveau là, on a un url du type :
http://mon-pc/rep-du-script/janvier/main.php
et donc déjà à ce niveau, j'aimerais pouvoir "cacher" le répertoire vacances ou le renommer comme tu l'avais suggéré en le nommant par un chiffre ou autre.
Et donc, mon htaccess présent dans le répertoire janvier (d'ailleurs j'ai un doute si je dois le mettre dans janvier ou vacances) a cette forme :
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^autrenom$ main.php?dir=/vacances [L]
et déjà à ce niveau, l'url ne change pas ...
voilà, j'espere que je ne t'ai pas trop embrouillé avec mon blabla ...
merci à toi
++
-->> Créer un fichier "index.php" avec ce code :
"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>URL Rewriting</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<script type="text/javascript">
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}
//-->
</script>
<style type="text/css">
<!--
/* CSS issu des tutoriels http://css.alsacreations.com */
body {
margin: 0;
padding: 0;
background: white;
font: 80% verdana, arial, sans-serif;
}
dl, dt, dd, ul, li {
margin: 0;
padding: 0;
list-style-type: none;
}
#menu {
position: absolute;
top: 0;
left: 0;
}
dl#menu {
width: 15em;
}
dl#menu dt {
cursor: pointer;
margin: 2px 0;;
height: 20px;
line-height: 20px;
text-align: center;
font-weight: bold;
border: 1px solid gray;
background: #ccc;
}
dl#menu dd {
border: 1px solid gray;
}
dl#menu li {
text-align: center;
background: #fff;
}
dl#menu li a, dl#menu dt a {
color: #000;
text-decoration: none;
display: block;
border: 0 none;
height: 100%;
}
dl#menu li a:hover, dl#menu dt a:hover {
background: #eee;
}
-->
</style>
</head>
* Jeux
:
<li>['.dirname($from).'/'.$nb.'/main.php '.$from.'\\'.$fichier.']
'; // Ici on sort le lien vers la galerie (le dossier trouvé)
}
elseif ($image === TRUE) {
if (!ereg('Thumbs.db',$fichier) AND !ereg('grand',$fichier)) { // On enleve le fichier "Thumbs.db" si il existe et on affiche pas les "grandes" images
$url = str_replace('small','grand',$fichier); // On créer une variable "$url" qui representera l'image "grande"
$e .= '['.dirname(dirname($from)).'/'.$_GET['nb'].'/'.$url.' ]
'; // On affiche la petite image qui sera en même temps le lien vers la grande image
}
}
return $e;
}
// Si la variable "$_GET['dir']" est vide on affiche les dossiers
if (empty($_GET['dir']))
echo listage('../..'.dirname($_SERVER['PHP_SELF']),FALSE);
// Sinon on affiche les images dans le dossier
else
echo listage('../..'.dirname($_SERVER['PHP_SELF']).'/'.$_GET['dir'],TRUE);
?>"
Pour finir tu dois créer un dossier nommée "Worms" et y mettre les images que tu trouvera ici "http://www.audayls.123.fr/Worms/".
Ben je cachais l'adresse du fichier "main.php" en même temps (comme çà on ne sais pas le dossier ...) Par contre est tu sûr(e) d'avoir activé l'URL Rewriting ?