Arcy Posted August 11, 2015 Share Posted August 11, 2015 Bonjour, J'ai un site donc l'accès aux pages s'organisent de la façon suivante (architecture MVC) : http://site.com/index.php?p=contact http://site.com/index.php?p=videos http://site.com/index.php?p=images J'obtiens donc la page concernée mais je souhaiterais réécrire l'URL d'une autre façon, en utilisant le Re-writing d'Apache. Ainsi, http://site.com/index.php?p=contact deviendrait (dans la barre d'URL) http://site.com/contact/ C'est possible ? Autre chose, je ne veux pas que les visiteurs puissent accéder aux sous-dossiers du site, CHMOD suffit ou je passe aussi par Apache ? Dernière question (promis ) : un truc pour lutter contre l'aspiration de site ? Merci ! Link to comment Share on other sites More sharing options...
Cara62 Posted August 11, 2015 Share Posted August 11, 2015 tiens tu trouveras peut être ton bonheur la dedans. Et je pense même que on peut refaire de la réécriture URL avec un htaccess. (pas sûr) Link to comment Share on other sites More sharing options...
Arcy Posted August 11, 2015 Author Share Posted August 11, 2015 J'avais déjà vu cette page mais elle donne pas les résultats de chaque exemple ... Je vais retenter avec, merci ! Link to comment Share on other sites More sharing options...
ExIcarus Posted August 11, 2015 Share Posted August 11, 2015 Oui ( http://www.apprendre-php.com/tutoriels/tutoriel-23-url-rewriting-ou-rcriture-d-url-avec-apache.html) Pour les sous dossiers du site , tu peux config tout ca dans le .htaccess il me semble. Le minimum est de mettre au moins un fichier index.html vide pour empecher d'avoir un affichage du directory (si tu n'as pas fait la config dans le .htaccess) Enfin pour le dernier , tout contenu que tu peux afficher depuis ton navigateur (ex : images , sous-dossier, etc...) peut être copié. Il y a des blacklist de crawler qui tourne sur le net qui peuvent surement empecher les aspirateur de tourner sur ton site , a voir. Link to comment Share on other sites More sharing options...
Cara62 Posted August 11, 2015 Share Posted August 11, 2015 Vu qu'on parle d'URL ça tombe bien (pas envie de recréer un sujet bref) Petit soucis avec Symfony.... (Arcy je sais je sais ), je bloque l'url en fonction du rôle de l'utilisateur or j'ai 2 rôles qui doivent avoir l'accès Edit : J'ai résolu mon problème c'est bon, fallait que je mette ROLE_ADMIN à la place. Le blocage fonctionne bien :) Merci Arcy Link to comment Share on other sites More sharing options...
Arcy Posted August 11, 2015 Author Share Posted August 11, 2015 C'est OK pour Apache, j'ai juste un p'tit problème dans certains cas. Si l'URL est http://site.com/contact, ça renvoie le contenu de http://site.com/index.php?p=contact. En fait, le problème c'est si on rajoute un /, j'ai tout qui saute ... # http://www.apprendre-php.com/tutoriels/tutoriel-23-url-rewriting-ou-rcriture-d-url-avec-apache.html# On suit les liens symboliques Options +FollowSymlinks # Activation du mod rewrite d'Apache RewriteEngine On # Réécriture de index.html vers index.php RewriteRule ^index\.html$ /index.php RewriteRule ^([a-z0-9]+)$ index.php?&page=$1 [L] EDIT : (Arcy je sais je sais ) Mais là, je peux pas t'aider, pas assez de connaissances avec Symfony. Link to comment Share on other sites More sharing options...
cadegenere Posted August 11, 2015 Share Posted August 11, 2015 En modifiant ta deuxième règle peut être pour prendre en compte un éventuel / ? C'est à tester par contre, j'ai pas Apache sous la main pour essayer. RewriteRule ^([a-z0-9]+\/?)$ index.php?&page=$1 [L] Edit : Tu parles bien d'une adresse du type http://www.site.com/contact/ ? Link to comment Share on other sites More sharing options...
Arcy Posted August 11, 2015 Author Share Posted August 11, 2015 Oui, http://www.site.com/contactpointe vers la page de contact, http://www.site.com/contact/donne une erreur. Je suis en train de voir pour faire des pages d'erreurs pour faire tous les cas. EDIT : marche pas, mais c'est normal : il cherche contact en tant que dossier ... Du coup, il y a que la solution des pages d'erreurs (si j'y parviens ) Link to comment Share on other sites More sharing options...
Arcy Posted August 11, 2015 Author Share Posted August 11, 2015 Bon, voilà ce que j'ai fait (attention, c'est tordu ) : # http://www.apprendre-php.com/tutoriels/tutoriel-23-url-rewriting-ou-rcriture-d-url-avec-apache.html# On suit les liens symboliques Options +FollowSymlinks # Activation du mod rewrite d'Apache RewriteEngine On # Réécriture de index.html vers index.php RewriteRule ^index\.html$ /index.php RewriteRule ^([a-z0-9]+)$ index.php?&page=$1 [L]# Pages d'erreursErrorDocument 401 /Site/erreurs.phpErrorDocument 400 /Site/erreurs.phpErrorDocument 403 /Site/erreurs.phpErrorDocument 404 /Site/erreurs.phpErrorDocument 500 /Site/erreurs.phpOptions -Indexes Donc en premier, la réécriture de l'URL. Si l'URL se termine par un / = dossier. Si on souhaite afficher le contenu du dossier : erreur 403 Si on souhaite afficher un contenu qui n'existe pas dans ce dossier : erreur 404 Mais pour ça, je dois stocker l'erreur. J'ai donc fait une page générale qui sauvegarde le tout en session : <?phpsession_start();$_SESSION["erreurServeur"] = $_SERVER;header("Location: http://localhost/Site/");?> Une fois sur le site, je vérifie la présence de $_SESSION["erreurServeur"]. Si oui, je redirige l'utilisateur vers une page d'erreur (site.com/index?&page=erreur) où sera lu le contenu de $_SESSION["erreurServeur"]. Merci pour votre coup de main ! Link to comment Share on other sites More sharing options...
Skywa Posted August 11, 2015 Share Posted August 11, 2015 Salut, J'arrive un peu aprés la bataille mais c'est ce que fait drupal ( CMS ) avec son .htacces Je met le lien au cas où, c'est plus complet et ça pourrais-te donner des idées https://github.com/drupal/drupal/blob/7.x/.htaccess Link to comment Share on other sites More sharing options...
Arcy Posted August 11, 2015 Author Share Posted August 11, 2015 YEAH ! Je garde, ça peut toujours pour de futurs projets, merci ! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.