Comment mêler du filtrage de fichiers et de l'url rewriting ?

WRInaute accro
Bonsoir

Voici le fichier .htaccess que j'essaye sans succès de mettre au point depuis ce soir.

Il me donne systématiquement une erreur "500 Server Internal Error", dès que j'essaye d'insérer les instructions de filtrage, soit au début, soit à la fin du script .htaccess

Comment faire, por qu'il n'y ait plus d'erreurs ?

#----------------------------------------------
# Regles de filtrage
#----------------------------------------------
<Files affic_pronostics.php>

Order allow, deny
Allow from all

Deny from 77.193.68.164
Deny from 41.249.87.87

</Files>

#----------------------------------------------
# Regles d'url-rewriting
#----------------------------------------------
# Repertoire: /php/courses_nouvelles/
#----------------------------------------------
# Base de l'url-rewriting
RewriteBase /php/courses_nouvelles/

# Activation du module de recriture d'URL :
RewriteEngine On

# Regles d'url-rewriting
#----------------------------------------------
# Regles de reecriture d'URL :
#----------------------------------------------

# Regle d'ajout de www
RewriteCond %{HTTP_HOST} !^www\.pronostics-courses\.fr$
RewriteRule (.*) http://www.pronostics-courses.fr/php/courses_nouvelles/$1 [QSA,L,R=301]

RewriteRule ^pronostics_new_courses,([0-9]+)\.html$ pronostics_new_courses.php?NUMCRS=$1 [L]

RewriteRule ^$ new_courses.php [L,R=301]

RewriteRule ^index\.php$ new_courses.php [L,R=301]

RewriteRule ^index\.html$ new_courses.php [L,R=301]

RewriteRule ^index\.htm$ new_courses.php [L,R=301]

# Interdiction d'accès aux scripts php
# de la forme : api_*.php
RewriteRule ^api_.*\.php$ - [F,L)

--------------------------------------------------------------------

Je filtre le script affic_pronostics.php lancé par une iframe sur mon site, à partir de quelques adresses ip susceptibles de copier mes pronostics.

D'autre part, je choisis d'interdire entièrement l'accès à tous les scripts de la forme : api_*.php sur ce répertoire.

Comment faire ?

Les autres règles fonctionen ttrès bien, quand les règles de filtrage ne sont pas présentes.

Merci beaucoup de vos réponses.

Bien amicalement.

Jean Francois Ortolo


P.S. Pour le filtrage de affic_pronostics.php , celà ne change rien,que je mette : <Files > ... </Files> , ou <FilesMatch > ... </FilesMatch>
 
WRInaute accro
Rebonsoir

Voilà, j'ai trouvé la solution.

Le problème était, d'une part que je mettais un espace entre Allow, et Deny dans l'instruction "Order Allow,Deny", ce que le serveur Apache version 2 n'acceptait pas, et d'autre part, que ma manière d'écrire les scripts dans l'instruction <FilesMatch , n'était pas fiable.

Maintenant, çà marche.

Voilà le début du script .htaccess corrigé :

#----------------------------------------------
# Regles de filtrage
#----------------------------------------------
<Files affic_pronostics.php>

Order Allow,Deny
Allow from all

Deny from 77.193.68.164
Deny from 41.249.87.87

</Files>

<FilesMatch api(.*)\.php>

Deny from all

</FilesMatch>


Le reste du script ( avec les redirections et l'url-rewriting ), vient après.

Pas de problème, çà roule. ;)

Les copieurs de mes pronostics, qu'y-z-y viennent... ;)

Z-y vont être obligés, de copier tous mes tableaux, alors... ;(

Bien à vous.

Amicalement.

Jean François Ortolo
 
Discussions similaires
Haut