Posté(e) le 11 août 20159 a 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 !
Posté(e) le 11 août 20159 a 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)
Posté(e) le 11 août 20159 a Auteur J'avais déjà vu cette page mais elle donne pas les résultats de chaque exemple ... Je vais retenter avec, merci !
Posté(e) le 11 août 20159 a 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.
Posté(e) le 11 août 20159 a 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 Modifié le 11 août 20159 a par Cara62
Posté(e) le 11 août 20159 a Auteur 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. Modifié le 11 août 20159 a par Arcy
Posté(e) le 11 août 20159 a 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/ ? Modifié le 11 août 20159 a par cadegenere
Posté(e) le 11 août 20159 a Auteur 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 ) Modifié le 11 août 20159 a par Arcy
Posté(e) le 11 août 20159 a Auteur 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 ! Modifié le 11 août 20159 a par Arcy
Posté(e) le 11 août 20159 a 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 Modifié le 11 août 20159 a par Skywa
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.