Dadou Posté 21 Juillet 2008 Posté 21 Juillet 2008 Bonjour à tous, cela fait un moment que je ne me suis pas manifesté sur le hub, je ne suis pas mort, je n'ai pas déserté non plus, mais une grosse mission chez un client avec un accès internet très limité (je n'ai même pas accès à mes mails) Il m'arrive un petit problème : J'ai une appli qui doit utiliser l'url rewriting (c'est précisé dans les specs), jusque la pas de soucis, sur mon serveur de dev, je met en place le mod rewrite, et je fais joujoux avec un .htaccess. Cette appli doit aussi gérer un accès limité par ip à un dossier (en l'occurrence le dossier d'admin du site), bon, un petit .htaccess sur ce dossier, et le tour est joué. Mais voila, on me dit maintenant, que sur le serveur de prod pas de .htaccess, et que ces réglages sont directement à faire au niveau du fichier apache2.conf. Alors ma question, est ce possible, si oui comment? Merci d'avance
Dan Posté 21 Juillet 2008 Posté 21 Juillet 2008 Tu peux mettre les directives de réécriture soit dans le fichier .htaccess, soit dans le fichier de configuration Apache... c'est totalement équivalent sur le plan de la syntaxe. Les règles, y compris le "RewriteEngine on" viennent dans le <Directory>, par exemple après la ligne "Options ..."
manub72 Posté 21 Juillet 2008 Posté 21 Juillet 2008 Bonjour, j'ai déjà eu ce genre de problème avec un client. Pour l'hébergeur, le dossier 'admin' (qui était celui où j'avais placé le code pour l'administration du site) était un dossier géré directement au niveau de la configuration d'apache et pas dans le htaccess, parce que ce dossier contenait en particulier les accès aux logs serveur, etc. Du coup, plusieurs choses : 1- ne pas appeler le dossier d'administration 'admin' (je ne le ferai plus à l'avenir...) 2- les droits au niveau du dossier sont gérés soit en passant un mail à l'hébergeur avec les ip à autoriser... 3- ... soit au niveau d'un script qui gère les autorisations d'accès aux pages de l'administration et qui est inclus en tête de chacune, dans lequel tu mets les ip autorisées.
Dadou Posté 21 Juillet 2008 Auteur Posté 21 Juillet 2008 Ok, sur ma conf Wampserver (avant de faire joujoux sur le serveur, je préfère tester en local ) je si fais comme ça c'est bon ? <Directory "D:/wamp/www/"> Options Indexes FollowSymLinks AllowOverride all Order Deny,Allow Allow from all# Activation de la ré-écriture d'url RewriteEngine on# choix de l'encodage par défaut AddDefaultCharset UTF-8 # Pages erreurs ErrorDocument 404 404.htm ErrorDocument 403 403.htm # Echappement des règles de ré-écritures RewriteRule ^admin/(.*)$ admin/$1 [L]# Routage vers index.php RewriteRule (.*)$ index.php?params=$1 [QSA,L]</Directory><Directory "D:/wamp/www/admin"> Options Indexes FollowSymLinks AllowOverride all order allow,deny Allow from 10</Directory> Bonjour, j'ai déjà eu ce genre de problème avec un client. Pour l'hébergeur, le dossier 'admin' (qui était celui où j'avais placé le code pour l'administration du site) était un dossier géré directement au niveau de la configuration d'apache et pas dans le htaccess, parce que ce dossier contenait en particulier les accès aux logs serveur, etc. Du coup, plusieurs choses : 1- ne pas appeler le dossier d'administration 'admin' (je ne le ferai plus à l'avenir...) ça c'est ok (malgré mon exemple ci-dessus, j'ai bien renommé le dossier d'admin )
Dan Posté 21 Juillet 2008 Posté 21 Juillet 2008 Pas trop cool tes règles ! Tu devrais mettre # Pages erreurs ErrorDocument 404 /404.htm ErrorDocument 403 /403.htm Je ne comprends pas à quoi sert celle-ci ??? # Echappement des règles de ré-écritures RewriteRule ^admin/(.*)$ admin/$1 [L] Et puis, avant RewriteRule (.*)$ index.php?params=$1 [QSA,L] Tu devrais mettre RewriteRule index.php - [L] sinon la règle précédente bouclerait à l'infini !
Dadou Posté 21 Juillet 2008 Auteur Posté 21 Juillet 2008 Pas trop cool tes règles ! Tu devrais mettre # Pages erreurs ErrorDocument 404 /404.htm ErrorDocument 403 /403.htm Ah oui en effet c'est mieux Je ne comprends pas à quoi sert celle-ci ??? # Echappement des règles de ré-écritures RewriteRule ^admin/(.*)$ admin/$1 [L] En fait cette règle me permet que le dossier admin ne soit pas affecté par la règle suivante Et puis, avant RewriteRule (.*)$ index.php?params=$1 [QSA,L] Cette règle me renvois tout vers le fichier index.php et je récupère dans la variable params l'url demandé Tu devrais mettre RewriteRule index.php - [L] sinon la règle précédente bouclerait à l'infini ! La c'est moi qui comprend pas, elle fait quoi cette ligne de ré-écriture? parce que dans mon .htaccess ça boucle pas
Dan Posté 21 Juillet 2008 Posté 21 Juillet 2008 Tu devrais remplacer ta règle admin par RewriteRule admin.php - [L] le signe moins dit "ne rien faire".... c'est la même chose que pour la ligne index.php que je te suggère de mettre aussi.
Dadou Posté 21 Juillet 2008 Auteur Posté 21 Juillet 2008 Ok et pour un dossier c'est RewriteRule admin/ - [L] ou RewriteRule admin - [L] Sinon, la règle pour la limitation par ip du dossier admin c'était bon?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant