Aller au contenu

apache2.conf, mod rewrite et limitation d'accès par IP


Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

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 ..."

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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 ;))

Lien vers le commentaire
Partager sur d’autres sites

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 !

Lien vers le commentaire
Partager sur d’autres sites

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 :wacko:

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...